【解決方法】URL 認証が拒否された後にログイン プロンプトを停止するにはどうすればよいですか?


こんにちは、
web.config または IIS 7 の設定内に、ログイン プロンプトを停止し、URL 認証ルールにより拒否されたときにユーザーに 401 エラーを強制する方法はありますか?

現時点では、ページへのアクセスは正常に制限されていますが、ログイン プロンプトで[キャンセル]をクリックするまで、「401 – 承認されていません: 資格情報が無効であるためアクセスが拒否されました」エラーは表示されません。

Windows 2008 R2、IIS 7.5、Windows 認証、偽装、および URL 認証を使用します。

以下は、私の web.config ファイルがどのように見えるかのサンプルです…

XML
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
        <security> 
            <authorization> 
                <remove users="*" roles="" verbs="" /> 
                <add accessType="Allow" roles="iis7test\BobAndFriends" />             

            </authorization> 
        </security> 
    </system.webServer> 
    <location path="bobsSecret.aspx"> 
        <system.webServer> 
            <security> 
                <authorization> 
                    <remove users="" roles="iis7test\BobAndFriends" verbs="" /> 
                    <add accessType="Allow" users="iis7test\Bob" />                  

                </authorization> 
            </security> 
        </system.webServer> 
    </location> 
</configuration> 

解決策 1

解決策 2

web.config の httpErrors を使用することで解決しました。 サイトはカスタム エラー ページにリダイレクトされ、Windows 資格情報の入力を 3 回要求されなくなります。

XML
<system.webServer>
   <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File">
     <remove statusCode="401" />
     <error statusCode="401" path="/AccessDenied.aspx" responseMode="ExecuteURL" />
   </httpErrors>
 </system.webServer>

コメント

タイトルとURLをコピーしました