Я пытаюсь запустить 401 HttpException, но приложение всегда возвращает 500 вместо 401. Этого не происходит, когда я бросаю другую ошибку 4XX.MVC5 throw HttpException of 401 возвращает 500
public ActionResult Error401()
{
throw new HttpException(401, "Unauthorized");
}
Я пытаюсь создать пользовательские страницы ошибок для 500, 404, 403, 400 и 401. Для всех ошибок, за исключением 401 я получить правильную страницу, для 401 я получаю в браузере ошибки 500 и 500 пользовательской ошибки стр.
<system.web>
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/CustomErrors/InternalServerError.aspx">
<error statusCode="500" redirect="~/CustomErrors/InternalServerError.aspx" />
<error statusCode="404" redirect="~/CustomErrors/NotFound.aspx" />
<error statusCode="403" redirect="~/CustomErrors/Forbidden.aspx" />
<error statusCode="400" redirect="~/CustomErrors/BadRequest.aspx" />
<error statusCode="401" redirect="~/CustomErrors/Unauthorized.aspx" />
</customErrors>
</system.web>
public class ErrorHandleAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
if (filterContext.HttpContext.IsCustomErrorEnabled == false)
{
return;
}
object exception = filterContext.Exception;
int httpStatusCode = (exception as HttpException).GetHttpCode();
filterContext.HttpContext.Response.Clear();
filterContext.HttpContext.Response.SuppressFormsAuthenticationRedirect = true;
filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
filterContext.HttpContext.Response.StatusCode = httpStatusCode;
}
}
Любые идеи других решений для возврата правильной пользовательской страницы для 401?
Благодаря
Вы зарегистрированы как пользовательский атрибут ошибки? –
Да, он зарегистрирован, я получаю все страницы с ошибками около 401. – gdi