2012-03-12 10 views
2

セキュリティ上の理由から(.netフレームワークのバージョンを表示しないように)、asp.netの黄色のページ(エラーページ)が訪問者に表示されないようにしたいと思います。 ベストプラクティスは何ですか?
私はhttperrorsのエラーモードとしてカスタムを使用していましたが、次に示します。
- すべての潜在的なHTTPエラーを宣言する必要がありますか?私はステータスを忘れることができます...
- 良い方法?私のweb.configファイルの黄色のエラーページを表示しない方法は?

サンプル:

<httpErrors errorMode="Custom"> 
     <remove statusCode="502" subStatusCode="-1" /> 
     <remove statusCode="501" subStatusCode="-1" /> 
     <remove statusCode="412" subStatusCode="-1" /> 
     <remove statusCode="406" subStatusCode="-1" /> 
     <remove statusCode="405" subStatusCode="-1" /> 
     <remove statusCode="403" subStatusCode="-1" /> 
     <remove statusCode="401" subStatusCode="-1" /> 
     <remove statusCode="400" subStatusCode="-1" /> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <remove statusCode="500" subStatusCode="-1" /> 
     <error statusCode="404" path="/404Page.aspx" responseMode="ExecuteURL" /> 
     <!-- ETC error for each status .... --> 
</httpErrors> 

答えて

2

これは私がこのプロジェクトのために私のweb.configファイルに持っているものです。これはほとんどすべてをキャッチします...あなたはこのメソッドを使用したいだけ多くのカスタムエラーコードを持つことができます。

   <customErrors mode="On" defaultRedirect="pgError.aspx"> 
       <error statusCode="504" redirect="pgNoConnection.aspx"/> 
      </customErrors> 
2

私はdefaultRedirectを指定すると、このデフォルトページにリダイレクトされるすべてのエラーコードを引き起こすだろうと思います。

この例では、すべてのhttpエラーコードはGenericError.htm(500以外)にリダイレクトされ、InternalError.htmにリダイレクトされます。ステータスコード500と異なるリダイレクトを引き起こす行を削除すると、すべてのエラーが同じページに送られます。

<configuration> 
     <system.web> 
     <customErrors defaultRedirect="GenericError.htm" 
         mode="RemoteOnly"> 
      <error statusCode="500" 
       redirect="InternalError.htm"/> 
     </customErrors> 
     </system.web> 
    </configuration> 

Hereあなたは黄色のページを取得していないためにのcustomErrorsセクション

2

のための完全なMSDNの参照を持っている、これは、手順は、次のとおりです。

(1)カスタムエラーページなどError.aspxに

あなたを設計します(2)エラーページが完了したら、ランタイムエラーYSODの代わりにカスタムエラーページを使用するようにWebアプリケーションを設定します。これは、セクションのdefaultRedirect属性にエラーページのURLを指定することで実現されます。アプリケーションのWeb.configファイルに次のマークアップを追加します。

<configuration> 
    ... 

    <system.web> 
     <customErrors mode="RemoteOnly" 
         defaultRedirect="~/ErrorPages/Oops.aspx" /> 

     ... 
    </system.web> 
</configuration> 

(3)デフォルトでは、すべての種類のエラーは、同じカスタムエラーページを表示させること。ただし、セクション内のchildren要素を使用して、特定のHTTPステータスコードに対して別のカスタムエラーページを指定することができます。例えば、404のHTTPステータスコードを有しているページが見つかりませんエラーが発生した場合に表示される異なるエラーページを持つことが、次のマークアップを含むようにセクションを更新:

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx"> 
    <error statusCode="404" redirect="~/ErrorPages/404.aspx" /> 
</customErrors> 

詳細については、これをフォローリンク: http://www.asp.net/web-forms/tutorials/deployment/displaying-a-custom-error-page-cs

関連する問題