9

Pregunta muy simple en realidad:Membresía de ASP.NET: ¿qué RoleProvider usar para que User.IsInRole() compruebe los grupos de ActiveDirectory?

Actualmente tengo el acceso anónimo de IIS deshabilitado, los usuarios inician sesión automáticamente con su inicio de sesión de Windows. Sin embargo, al llamar a User.IsInRole ("Nombre del rol") se devuelve falso. Comprobé dos veces User.Identity.Name() y el "Nombre del rol" y debería devolver verdadero.

Actualmente tengo esto en mi Web.Config:

ACTUALIZACIÓN
estaba llamando User.IsInRole ("Role name") donde debería llamar User.IsInRole ("DOMINIO \ Nombre de rol ")

Sin embargo, me gustaría saber si la membresía < > es necesaria en absoluto?

¿Qué debo cambiar? (y es el < membresía > entrada necesaria en absoluto?)

<authentication mode="Windows"> 
     <forms 
     name=".ADAuthCookie" 
     timeout="10" /> 
    </authentication> 


<membership defaultProvider="ADMembershipProvider"> 
    <providers> 
    <clear/> 
     <add 
     name="ADMembershipProvider" 
     type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="ADConnectionString" 
     connectionUsername="XXX\specialAdUser" 
     connectionPassword="xx" 
     /> 
    </providers> 
</membership> 

<roleManager enabled="true" defaultProvider="WindowsProvider"> 
    <providers> 
    <clear /> 
     <add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" /> 
    </providers> 
</roleManager> 

Respuesta

4

Si usa la autenticación de Windows, IsInRole funcionará sin configuración adicional, siempre que recuerde agregar el prefijo al rol con el dominio, es decir, DOMAIN \ groupName.

Además, puede usar el rol (juego de palabras) y usar la autenticación de Windows contra, por ejemplo, un proveedor de roles SQL, donde no desea que su AD esté plagada de roles personalizados para su aplicación.

Así que no, no necesita la configuración del proveedor.

1

El proveedor de pertenencia aquí no va a ayudar. El ActiveDirectoryMembershipProvider parece ser el que mejor (¿solo?) Se ajusta con la autenticación Forms.

0

Bastante seguro de que la única cosa que hay allí es el grupo roleManager (junto con el modo de autenticación de base = ajuste 'ventanas')

+0

¿Ya no se verifican automáticamente las funciones en Activedirectory? – Ropstah

0

Fuera de la caja, no hay proveedor de funciones para utilizar Active Directory directamente. Puede usar la tabla de roles en la membresía ASP.NET y el sistema de roles, o puede usar el Administrador de autorizaciones (AzMan).

Hay un artículo en CodeProject que muestra la implementación de un proveedor de roles que funciona en contra de Active Directory, con código fuente completo. Quizás esto ayude?

Marc

Cuestiones relacionadas