我编写了一个自定义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(); } }
在我的web.config中,我有:
<authentication mode="Forms"> <forms loginUrl="~/User/SignIn" timeout="2880" /> </authentication>
在身份验证失败时,默认情况下会重定向到“/帐户/登录”页面.
如何更改此默认重定向网址并将其重定向到“/ User / SignIn”?
屏幕截图显示了我想说的内容的清晰视图.
虽然我已设置’/ User / SignIn’,但它会重定向到’/ Account / Login’
解决方法
我不确定我是否可以添加这个作为答案.但这可能有助于其他有这个相关问题的人.
经过努力,我得到了解决方案.我最近添加了WebMatrix.WebData参考,这似乎是这个问题的真正罪魁祸首.这可以通过将密钥添加到配置文件来处理:
<add key="loginUrl" value="~/User/SignIn" />