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

Setting Cookie for WebForms app in MVC Controller?

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

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

Login 是一个正在运行的 MVC 路由。

在我的登录 POST 方法中,假设 username/password 有效:

FormsAuthentication.SetAuthCookie(model.Username, true);

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

简短的回答是,是的,这也适用于 MVC。

更长的答案是 - 身份验证模块并不真正关心管道中执行的处理程序。表单身份验证模块关心 cookie,如果它看到一个,它会相应地设置 HttpContext.Current.User。处理程序中发生的事情,无论是 MVC、WebForms 页面、WCF 服务、WebApi 服务还是其他任何东西,身份的设置方式都是一样的。