Tengo problemas para permitir que un Rol específico acceda a una página específica en un subdirectorio.Autenticación de formularios de ASP.NET Permitir el acceso a un archivo específico en el subdirectorio cuando se deben denegar todos los demás
Mi aplicación ASP.NET tiene un directorio, ~/Forms/Administration que tiene acceso limitado. Hay un archivo específico, ~/Forms/Administration/Default.aspx al que quiero dar acceso a 1 rol de usuario adicional, así como también la función Admin.
En ~/Formas/Administración, tengo un archivo web.config que tiene este aspecto:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Administrator, User" />
<deny users="*"/>
</authorization>
</system.web>
<location path="Forms/Administration/Default.aspx">
<system.web>
<authorization>
<allow roles="Administrator, User, AdditionalUser" />
</authorization>
</system.web>
</location>
</configuration>
El usuario administrador funciona bien, pero AdditionalUser siempre falla. He intentado varias cosas - los lugares de localización como
<location path="Forms/Administration/Default.aspx">
Y como
<location path="~/Forms/Administration/Default.aspx">
¿El niegan = "*" de la primera regla genérica teniendo precedente? He intentado cambiar
<deny users="*"/>
Para
<deny users="?"/>
Pero eso termina dando acceso a AdditionalUser todo. Sugerencias?
EDIT: intenté poner la ubicación específica permitir antes de la regla de denegación genérica, en caso de que el orden importara. El mismo problema.
ACTUALIZACIÓN: claramente me falta algo aquí: eliminé el deny * config, y dejé solo en la sección específica de la ubicación. Entonces, en lugar de permitir ciertos roles, configuré ese para negar todo (*). Sin embargo, no me niega nada cuando inicio sesión. Incluso reduje la regla para no ser específico del archivo, pero aplicarlo a todo el directorio, y no me niega nada. Sin embargo, las reglas originales que no son de ubicación funcionan, así que sé que este archivo de configuración se está leyendo.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="Forms/Administration">
<system.web>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</location>
</configuration>
Gah, tiene mucho sentido. Intentaré esta solución tan pronto como pueda. – Matt
Chris, ¿me pueden ayudar con http://stackoverflow.com/questions/15882511/how-do-i-configure-asp-net-forms-authentication-to-deny-only-a-specific-url. Como solo necesito 1 uso para tener acceso, solo estoy ingresando su información de inicio de sesión –
Lol @NatePet, he comentado sobre su pregunta. Espero que eso ayude –