Ramon Torras

TECHNOLOGY ENTHUSIAST

Uso del Membershipprovider en Active Directory (AD)

En ASP.NET 2.0 existen unos controles que se llaman membershipproviders. Estos son muy utiles ala hora de validar y gestionar el usuario sin tener que tocar directamente la base de datos (en el caso de forms) o tocar objetos de Active Directory.
 
Estos controles se definen en el Web.config del IIS.
 
En el siguiente ejemplo pongo un control de membershipprovider para Active directory.
 
Primero hay que poner una cadena de conexión, con el nombre que querais (yo le he puesto ADService) con la cadena referenciando al servidor de AD i por ejemplo el dominio. La cadena de conexion del AD puede ser tan precisa como queramos. Eso ya depende de como este configurado el AD.
 
…..
   
  <connectionStrings>
    <add name= ADService connectionString= LDAP://<Server AD>/DC=<dominio> />
  </connectionStrings>
 
Ahora ponemos el control dentro de   <system.web>
 
    <membership defaultProvider= AspNetActiveDirectoryMembershipProvider >
      <providers>
        <add name= AspNetActiveDirectoryMembershipProvider
          type= System.Web.Security.ActiveDirectoryMembershipProvider,
          System.Web, Version=2.0.0.0, Culture=neutral,
          PublicKeyToken=b03f5f7f11d50a3a
          connectionStringName= ADService
          enableSearchMethods= true
        />
      </providers>
    </membership>
El public token puede variar en función de la version de framework. En este caso es la 2.0.
 
En este momento, en nuestro codigo de VStudio podremos usar este objeto que esta en el contexto para poder gestionar los usuarios.
 
En cualquier evento de nuesto codigo podremos acceder al objeto de contexto membership i utilizar sus metodos. En este caso no hace falta especificar el proveedor ya que solo hay uno y es el default.
 
por ejemplo si queremos ver todos los users que cuelgan en funcion de la query LDAP que hemos hecho:
 
        Dim usercoll As New System.Web.Security.MembershipUserCollection
        usercoll = Membership.GetAllUsers()
        For Each miembro As MembershipUser In usercoll
            miembro.UserName.ToString()
        Next
 
Saludos
Ramon Torras

Comments are currently closed.