2017-01-15 3 views
0

Я хочу показать страницу ошибки web.config против 401 в ASP.NET MVC, работает только 404 и страницы ошибок по умолчанию. Процесс аутентификации - это моя собственная и НЕ использующая инфраструктуру идентификации .net.Пользовательская страница ошибки 401 в MVC без проверки подлинности Windows

Я бросаю новое исключение 401 в свой метод действия контроллера.

Действие:

[HttpGet] 
[HandleError] 
public ActionResult Delete(int id) 
{ 
    //if (user.IsInRole(RoleType.DELETE)) 
    if (myOwnUserClass.IsInRole(RoleType.DELETE)) 
    { 
     return View(); 
    } 
    else 
    { 
     return new HttpStatusCodeResult(401); 
     //return PartialView("_unauthorize"); 
    } 
} 

web.config

<customErrors mode="On" defaultRedirect="~/Error/Index"> 
     <error statusCode="401" redirect="~/Error/Unauthorized" /> 
     <error statusCode="404" redirect="~/Error/NotFound"/> 
    </customErrors> 

И я получаю по умолчанию 401 страница ошибки, а не мой собственный.

Default 401 error page similar to this

Я также искал переполнения стека для этого, но ответы на эти вопросы не работал для меня.

ответ

1

Вы можете попробовать отключить customErrors и вместо этого использовать httpErrors для обработки этих ошибок.

<system.web> 

    <customErrors mode="Off" /> 

    <!-- other tags removed for brevity --> 
</system.web> 
<system.webServer> 

    <httpErrors errorMode="Custom" existingResponse="Auto"> 
    <clear /> 
    <error statusCode="401" responseMode="ExecuteURL" path="/Error/Unauthorized" /> 
    <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" /> 
    <error statusCode="500" responseMode="ExecuteURL" path="/Error" /> 
    </httpErrors> 

    <!-- other tags removed for brevity --> 
</system.webServer> 
+0

hmmm Позвольте мне проверить httpErrors и вернусь к вам –

Смежные вопросы