ご覧のとおり、これは非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
メソッドを使用します。
[〜#〜] msdn [〜#〜] によると、以下を使用するだけでよいはずです。
Throw New HttpException(401, "Auth Failed")
Edit他の応答を確認した後、ステータスコードの設定がより適切になります。
1つの追加コメント。
ページの一部が既に出力バッファーに書き込まれている場合、バッファーされたコンテンツをクリアすることが重要です。そうしないと、ページが正しく表示されない可能性があります。
これは、テンプレート化された環境ではよくあることです。例えばマスターページ...
Response.ClearContent();
Response.StatusCode = 401;
Response.End();