我在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控制代码的作用相同?它似乎工作正常,但我想确保我不会忽视这里的东西。
答案 0 :(得分:2)
简短的回答是,是的,对MVC来说也是如此。
更长的答案是 - 验证模块并不真正关心管道中执行的处理程序。表单身份验证模块关注cookie,如果看到cookie,则会相应地设置HttpContext.Current.User
。处理程序中发生的事情,无论是MVC,WebForms页面,WCF服务,WebApi服务还是其他任何东西,身份都以同样的方式设置。