在 MVC 控制器中为 WebForms 应用程序设置 Cookie

本文关键字:应用程序 设置 Cookie WebForms MVC 控制器 | 更新日期: 2023-09-27 18:36:45

我的web.config中有以下内容:

<authentication mode="Forms">
  <forms name=".MyWebSite" enableCrossAppRedirects="true" loginUrl="Login" timeout="60" path="/" defaultUrl="~/Pages/Landing.aspx"></forms>
</authentication>

Login是正在运行的 MVC 路由。

从我的登录POST方法中,假设用户名/密码有效:

FormsAuthentication.SetAuthCookie(model.Username, true);

这是对的吗? 这是否与 WebForms 登录控件代码执行的操作相同? 它似乎工作正常,但我想确保我不会在这里忽略某些东西。

在 MVC 控制器中为 WebForms 应用程序设置 Cookie

简短的回答是,是的,这对 MVC 来说也很好。

更长的答案是 - 身份验证模块并不真正关心在管道中执行什么处理程序。表单身份验证模块负责 Cookie,如果它看到一个 cookie,它会相应地设置HttpContext.Current.User。在处理程序中发生的情况,无论是 MVC、WebForms 页、WCF 服务、WebApi 服务还是其他任何内容,标识都以完全相同的方式设置。