Pregunta

Una pregunta muy simple en realidad:

En este momento tengo un acceso IIS anónimo deshabilitado, los usuarios se registran automáticamente en el uso de su conexión de Windows. Sin embargo llamando User.IsInRole ( "Role name") devuelve falso. Verifiqué User.Identity.Name () y el "Nombre de función" y que debería devolver true.

En este momento tengo esto en mi web.config:

Actualizar
Estaba llamando User.IsInRole ( "Role name") donde debería llamar User.IsInRole ( "DOMINIO \ nombre de papel")

Sin embargo todavía me gusta saber si se necesita la ingreso en absoluto?

¿Qué debería cambiar? ( y es el 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>
¿Fue útil?

Solución

Si utiliza la autenticación de Windows IsInRole funcionará sin necesidad de configuración adicional, como siempre que se recuerde para prefijar el papel con el dominio, es decir, DOMINIO \ nombre de grupo.

Además, puede papel (nunca mejor dicho) su cuenta y utilizar Windows autenticación contra, por ejemplo, un proveedor de funciones de SQL, en el que no desea que su anuncio llena de papeles personalizados para su aplicación.

Así que no, no es necesario la configuración del proveedor en absoluto.

Otros consejos

El proveedor de pertenencia aquí no va a ayudar. El ActiveDirectoryMembershipProvider parece mejor (sólo?) Encaja con la autenticación de formularios.

Bastante seguro de lo único que se necesita en el grupo hay roleManager (junto con el modo de autenticación de base = ajuste 'ventanas')

Fuera de la caja, no hay proveedor de funciones para utilizar Active Directory directamente. Puede utilizar la tabla de papel en el membresía- ASP.NET y función del sistema, o puede utilizar el Administrador de autorización (AzMan).

Hay un artículo sobre CodeProject que muestra la implementación de un proveedor de funciones que trabaja en el Active Directory - con código fuente completo. Tal vez esto ayuda?

Marc

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top