在asp.net mvc中的HttpUnauthorizedResult上的默认登录URL

Pra*_*sad 8 authentication asp.net-mvc forms-authentication custom-attributes

AuthorizeAttribute在asp.net mvc3应用程序中编写了一个具有以下条件的自定义:

public override void OnAuthorization(AuthorizationContext filterContext)
{     
    //auth failed, redirect to Sign In
    if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
    {
       filterContext.Result = new HttpUnauthorizedResult();
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的web.config中,我有:

<authentication mode="Forms">
  <forms loginUrl="~/User/SignIn" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

验证失败后,默认情况下会重定向到"/帐户/登录"页面.

如何更改此默认重定向网址并将其重定向到"/ User/SignIn"?

屏幕截图显示了我想说的内容的清晰视图.HttpUnauthorizedresult图像

虽然我设置了'/ User/SignIn',但它会重定向到'/ Account/Login'

Pra*_*sad 9

我不确定我是否可以添加这个作为答案.但这可能有助于其他有这个相关问题的人.

经过努力,我得到了解决方案.我最近添加了WebMatrix.WebData参考,这似乎是这个问题的真正罪魁祸首.这可以通过将密钥添加到配置文件来处理:

<add key="loginUrl" value="~/User/SignIn" />
Run Code Online (Sandbox Code Playgroud)

  • 密钥应添加到web.config中的appSettings部分. (6认同)