2017-01-15 9 views
0

ASP.NET MVCの401に対してweb.configのエラーページを表示したいのですが、404とデフォルトのエラーページが機能しています。認証プロセスは私自身であり、.net IDフレームワークを使用していません。カスタム401 Windows認証のないMVCのエラーページ

コントローラアクションメソッドで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エラーページ、私自身、NOTをデフォルト得ます。

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で確認させていただきます。 –

関連する問題