統合されたWindows認証アプリごとに、ユーザーがリクエストをキャンセルした場合、別のページにリダイレクトできますか?
-
23-09-2019 - |
質問
編集 〜タイトルと質問本体を更新しました:これは編集です。
IIS6/7でこの動作ごとにこの動作が必要です。 IIS7に移行する前に最初に尋ねたので、2つの間で答えを変更できます(それ以来、IIS7について少し学びました;])が、私は機能する答えを探しています。
401認証要求のキャンセル(401.1エラーコードを意味する)のキャンセルに基づいて、サーバーごとにアプリごとにリダイレクトする必要があります。お役に立てれば。
IIS6では、NTLM認証(統合されたWindows認証を意味する)を使用して、ユーザーが認証要求をキャンセルした場合、どうすれば別のページにリダイレクトできますか? web.configで401(Tride)または401.1(intではない)をつかむことはできません。
問題が401ステータスであるかどうかをリダイレクトすることはできません。では、ブラウザチャレンジでキャンセルしたときにキャプチャするにはどうすればよいですか?
私が明確であることを確認するために:Firefoxを開いてIWAページに移動すると、ダイアログが表示されます(About:configで構成していないと仮定)とWindows資格情報のキーを使用します。彼らがその箱を止めるのを防ぎたいです。
解決
私はこれが古いことを知っていますが、いくつかの応答タイプは処理のために.NETに渡されません。代わりに、IISレベルで処理する必要があります。応答に基づいて別のページが必要な場合は、IISマネージャーに移動し、エラーページを制御するセクションを見つける必要があります(使用しているIISバージョンによって異なります。
次に、キャプチャしたいステータスコードを追加し、ブラウザに向けたいページを指定します。
私はあなたがIIS 6に言及したことを知っていますが、私はそれらのサーバーのいずれかにアクセスできません。 IIS 7については、サイトをクリックします。 IIS>エラーページセクションに移動します。 [追加]をクリックします。コード(401.1)を入力し、サイトのページへのパスを提供します。匿名でページにアクセスできることを確認してください。
アップデート:
いくつかの新しい情報を見つけました。これをWeb.configで処理できます。詳細については、次のサイトを参照してください。 Learn.iis.net
web.configのエラーセクションで次のことを行います(例として):
<error statusCode="401" subStatusCode="1" prefixLanguageFilePath="c:\inetpub\custerr" path="401_1.htm" />
これに.aspxページを使用できるかどうかはわかりませんが、確かにそのように見えます。ただし、おそらく完全に自己閉じ込められている必要があります。
マイクロソフトのドキュメント SubratuscodeはMSDNにあります. 。彼らによると、それはIIS 7、.NET 3.0+でのみ動作し、統合されたパイプラインモードを使用する場合です。これは、アプリに応じて少し制限的かもしれません。