質問

ご覧のとおり、これは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")

編集他の応答設定を確認した後、ステータスコードがより適切になります。

追加のコメント。

ページの一部がすでに出力バッファに書き込まれている場合、バッファリングされたコンテンツをクリアしないと、ページが正しく表示されない可能性があります。

これは、テンプレート環境で発生する可能性が非常に高いです。例えばマスターページ...

Response.ClearContent();
Response.StatusCode = 401;
Response.End();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top