¿Cómo puedo detener las solicitudes de inicio de sesión después de que se haya denegado la autorización de URL?

programación


¿Hay una manera dentro web.config ¿O la configuración de IIS 7 que detendrá las solicitudes de inicio de sesión y simplemente obligará al usuario a cometer el error 401 al ser denegado debido a la regla de autorización de URL?

En este momento, restringe con éxito el acceso a la página, pero no muestra el error “401 – No autorizado: acceso denegado debido a credenciales no válidas” hasta que hace clic en cancelar en el mensaje de inicio de sesión.

Usando Windows 2008 R2, IIS 7.5, autenticación de Windows, suplantación y autorización de URL.

A continuación se muestra una muestra de cómo mi web.config el archivo parece…

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> 

Solución 1

Solución 2

Resuelto usando httpErrors en web.config. El sitio ahora redirige a la página de error personalizada y no solicita las credenciales de Windows tres veces.

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

コメント

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