0

IIS6 で NTLM 認証 (統合 Windows 認証) を使用して、ユーザーが認証要求をキャンセルした場合、ユーザーを別のページにリダイレクトするにはどうすればよいですか? web.config で 401 (試行済み) または 401.1 (int ではない) を取得することはできません。

問題が 401 ステータスの場合、リダイレクトできません。応答を取得するために意図的に 401 を要求しているためです。では、ブラウザー チャレンジでキャンセルされたときをキャプチャするにはどうすればよいでしょうか。

明確にするために、Firefox を開いて IWA ページに移動すると、ダイアログが表示され (about:config でそれを構成していないと仮定します)、使用する Windows 資格情報を入力します。彼らがその箱を止めるのを防ぎたい。

IIS6/7 でアプリごとにこの動作が必要です。IIS7 に移行する前に最初に質問したので、2 つの間で回答が変わる可能性があります。

ユーザーが 401 Auth リクエスト (つまり 401.1 エラー コード) をキャンセルしたことに基づいて、サーバーごとではなくアプリごとにリダイレクトする必要があります。

4

1 に答える 1

2

一部の応答の種類は、処理のために .NET に渡されません。代わりに、IIS レベルで処理する必要があります。応答に基づいて別のページが必要な場合は、IIS マネージャーに移動して、エラー ページを制御するセクションを見つける必要があります (使用している IIS のバージョンによって異なります)。

次に、取得したいステータス コードを追加し、ブラウザのリダイレクト先のページを指定します。

あなたが IIS 6 について言及したことは知っていますが、私はそれらのサーバーの 1 つにアクセスできません。IIS 7 の場合は、サイトをクリックします。[IIS] > [エラー ページ] セクションに移動します。[追加] をクリックします。コード (401.1) を入力し、サイトのページへのパスを指定します。そのページが匿名でアクセスできることを確認してください。

これを web.config で処理することもできます (詳細については、Microsoft Docsを参照してください)。

web.config のエラー セクションで、次の操作を行います (例として)。

<error statusCode="401" subStatusCode="1" prefixLanguageFilePath="c:\inetpub\custerr" path="401_1.htm" />

これに .aspx ページを使用できるかどうかはわかりませんが、確かにそのように見えます。ただし、おそらく完全に自己完結型である必要があります。

に関する Microsoft ドキュメントHttpResponse.SubStatusCodeMSDNにあります。彼らによると、IIS 7、.NET 3.0+、および統合パイプライン モードを使用している場合にのみ機能します。アプリによっては、これが少し制限される場合があります。

于 2010-12-06T23:53:23.393 に答える