我创建了一个全新的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/

10-13 08:47