我创建了一个全新的ASP.NET MVC 5项目,以使用[Authorize]
测试FormsAuthentication.SetAuthCookie
属性。我只是在一个 Action 中(在我的Home Controller 中)设置了一个cookie:
public ActionResult About()
{
FormsAuthentication.SetAuthCookie("someUser", false);
而且我限制访问另一个:
[Authorize]
public ActionResult Contact()
{
当我启动网页并导航到
/home/contact
时,可以正确地重定向到登录页面。然后,我转到/home/about
,获取我的cookie,然后返回到联系页面。但是我仍然重定向到登录页面-cookie不会对我进行身份验证/授权。在调试器中,当我多次加载“关于”页面时,为
HttpContext.User.Identity.IsAuthenticated == false
(也就是说,即使设置了身份验证Cookie,它也永远不会将我视为已通过身份验证)。在这里必须要做一些额外的步骤吗?我不需要为基本身份验证设置自己的IPrincipal,对吗?
最佳答案
从web.config中删除:
<modules>
<!--<remove name="FormsAuthenticationModule" />-->
</modules>
或简单地删除行
在web.config中
关于c# - FormsAuthentication.SetAuthCookie在MVC 5中没有[授权],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26613421/