Я использую специальный атрибут authorize в приложении ASP.NET MVC 5, например:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext context)
{
if (context.HttpContext.Request.IsAuthenticated)
{
context.Result = new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);
}
else
{
base.HandleUnauthorizedRequest(context);
}
}
}
В разделе system.web
моего web.config я упомянул пути ошибок, например:
<system.web>
<customErrors mode="On" defaultRedirect="/Error/Error">
<error statusCode="403" redirect="/Error/NoPermissions"/>
</customErrors>
</system.web>
Но я никогда не перенаправляюсь на страницу пользовательских ошибок в /Error/NoPermissions
. Вместо этого браузер отображает общую страницу с сообщением об ошибке "HTTP Error 403.0 - Forbidden" .