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

时间:2015-01-08 21:43:31

标签: c# asp.net asp.net-mvc cookies webforms

我在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 Login控制代码的作用相同?它似乎工作正常,但我想确保我不会忽视这里的东西。

1 个答案:

答案 0 :(得分:2)

简短的回答是,是的,对MVC来说也是如此。

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