ASP.NETページでプログラムで401エラーを生成する方法
-
03-07-2019 - |
質問
ご覧のとおり、これはWeb開発者以外からの質問です。特定の状況下で、コードから401エラーを生成できるASPXページが必要です。理想的には、IIS標準ページが表示されます。
解決
Response.StatusCode を設定してから、 -実行を停止する必要がある場合- Response.End( )。
他のヒント
Response.StatusCode = 401;
Response.End();
私はまだ好きだと思う:
throw new HttpException(401, "Auth Failed")
Response.StatusCode
メソッドがweb.configファイルで定義されたカスタムエラーをトリガーするとは思わない。
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="401" redirect="AuthFailed.htm" />
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
新しい例外をスローすると、間違いなくカスタムエラーがトリガーされます。
また、 ELMAH などのアプリケーション全体のエラーログ機能を使用している場合もあります。また、 Response.StatusCode
メソッドもそこに記録されるとは思いません。
注:ここで、理想的には、標準のIISエラーページを表示する必要があるという質問が表示されます。明らかに、カスタムエラーページは不要です。その場合は Response.StatusCode
メソッドを使用します。
追加のコメント。
ページの一部がすでに出力バッファに書き込まれている場合、バッファリングされたコンテンツをクリアしないと、ページが正しく表示されない可能性があります。
これは、テンプレート環境で発生する可能性が非常に高いです。例えばマスターページ...
Response.ClearContent();
Response.StatusCode = 401;
Response.End();
所属していません StackOverflow