我已实施CustomAuthorization
覆盖AuthorizeAttribute
。
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
var isUserExist = false;
if (isAuthorized)
{
//To check if user exists in DB
}
return isAuthorized && isUserExist;
}
}
这项工作正常,当用户未获得授权时,它会显示401
未经授权的错误。
但在这种情况下,我想将其重定向到Custom Unauthorized Page
。为此,我在web.config
<customErrors mode="On" defaultRedirect="~/Home/Error">
<error statusCode="401" redirect="~/Home/Unauthorized" />
</customErrors>
在我的控制器中,
[Authorize]
public class HomeController : BaseController
{
[AllowAnonymous]
public ActionResult Unauthorized()
{
return View(ActionMethods.HOME_UNAUTHORIZED);
}
}
我的问题是,它没有重定向到自定义页面,而是提示输入用户名/密码浏览器弹出窗口。
分享想法/经验会更好。
从评论更新:
我正在使用Windows Authentication
并IIS
同时启用Windows Authentication
和Anonymous Authentication
。