授权属性在SetAuthCookie之前限制访问

时间:2014-02-19 15:07:08

标签: .net asp.net-mvc vb.net

我在使用ASP.NET MVC 4项目中的Authorize属性时遇到了麻烦 每当登录正确时,我都会尝试将用户重定向到授权页面。

这是我正在使用的用户控制器

Public Class UserController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Account

    Function Index() As ActionResult
        Return RedirectToAction("Login")
    End Function

    <HttpGet, AllowAnonymous>
    Function Login() As ActionResult
        If User.Identity.IsAuthenticated Then
            Return RedirectToAction("x")
        End If
        Return View("Login")
    End Function

    <HttpPost, AllowAnonymous>
    Function Login(ByVal username As String, ByVal password As String) As ActionResult
        Dim objService As New AuthenticateServiceClient
        If objService.ADAuthenticate(username, password) Then
            FormsAuthentication.SetAuthCookie(username, False)
            Return RedirectToAction("x")
        Else
            ModelState.AddModelError("e", "The provided credentials are invalid")
            Return View("Login")
        End If
    End Function

    <HttpPost, Authorize>
    Function Logout() As ActionResult
        FormsAuthentication.SignOut()
        Return RedirectToAction("Login", "User")
    End Function

    <Authorize>
    Function x() As ActionResult
        Return View("Login")
    End Function

End Class

但是当我正确登录并且用户被重定向时,我收到HTTP错误401.0 - 未经授权。

我错过了一些配置?

此致

1 个答案:

答案 0 :(得分:0)

相当愚蠢的错误。

发布的web.config不是源控件/本地控件。它缺少配置信息。

<authentication mode="Forms">
  <forms loginUrl="~/User/Login" timeout="2880"/>
</authentication>