2012-01-29 22 views
6

Tengo un servidor LDAP trabajar con estos parámetros:ASP.NET MVC: ¿cómo configurar web.config para la autenticación LDAP?

OU=users,OU=mydomain,O=this domain 
LDAP://myhost:389 

I éxito acceso con un cliente LDAP genérico, como el bien de Jarek Gawor navegador LDAP/cliente con ajustes siguientes:

OU=users,OU=mydomain,O=this domain 
User info (append base DN): 
uid=myid 
password=mypwd 

Intenté hacer lo mismo con ASP.NET, obteniendo siempre el error "Nombre de usuario o contraseña incorrectos". ¿Me puede ayudar a configurar web.config con los parámetros anteriores, por favor? hice muchos intentos, como cambiar connectionUsername, la eliminación de nombre de dominio, poniendo uid = myid, etc ...

web.config

<configuration> 
    <connectionStrings> 
    <add name="ADConnectionString" connectionString="LDAP://myhost:389"/> 
    .... 

<membership defaultProvider="DefaultMembershipProvider"> 
    <providers> 
    <add name="DefaultMembershipProvider" 
     type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="ADConnectionString" 
     connectionProtection="None" 
     connectionUsername="MYDOMAIN\myid" 
     connectionPassword="mypwd" 
     attributeMapUsername="sAMAccountName" 
     enableSearchMethods="True" /> 
    </providers> 
</membership> 
...... 

Gracias de antemano

+0

'mypass' o' mypwd' o es solo un error tipográfico? –

+0

Lo siento @WiktorZychla, fue solo un ejemplo. Yo estandaricé la contraseña como mypwd. THX – Larry

Respuesta

2

tuve éxito en conseguir que funcione con la siguiente configuraciónweb.config.

Había dos problemas/errores:

primero) que no especificó el contenedor, por lo que siguió @ consejos de Kevin:

<configuration> 
    <connectionStrings> 
    <add name="ADConnectionString" connectionString="LDAP://myhost:389/O=this domain,CN=Users,DC=mydomain,DC=com"/> 
    .... 

Creo que fue relevante la NC, mientras que O podría omitirse aquí, pero no creo que esto sea muy importante ...

2do) Puse la base DN y el nombre de usuario (en el formulario uid =) juntos adentro conexiónNombre de usuario parámetro:

<membership defaultProvider="DefaultMembershipProvider"> 
    <providers> 
<add name="DefaultMembershipProvider" 
    type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    connectionStringName="ADConnectionString" 
    connectionProtection="None" 
    connectionUsername="uid=myid, O=this domain" 
    connectionPassword="mypwd" 
    attributeMapUsername="sAMAccountName" 
    enableSearchMethods="True" /> 

Tenga en cuenta, en mi caso necesitaba poner UID = myid. No sé si esto podría ser una solución general; quizás esté relacionado con la configuración ADAS de mi empresa, no lo sé. Espero que esto pueda ayudar a algunos de ustedes ... por favor voten si esta solución les resulta útil, gracias.

@Kevin: Muchas gracias. ¡Usted ha sido muy útil!

0

El único elemento faltante parece ser el ou predeterminado ¿Ha intentado agregar la entrada final debajo de "/CN = Usuarios, DC = testdomain1, DC = prueba, DC = com"?

 

add name="TestDomain1ConnectionString" connectionString="LDAP://testdomain1.test.com/CN=Users,DC=testdomain1,DC=test,DC=com" 

que tiene lo anterior desde el http://msdn.microsoft.com/en-us/library/ff650307.aspx

+0

Gracias @Kevin. Lamentablemente no funciona. De todos modos con otros clientes ldap acabo de establecer DN base = "OU = usuarios, OU = midominio, O = este dominio" y añada uid = myid y contraseña = mypwd a la base DN ... Hice varios intentos, cambiando el nombre de usuario con myid @ mydomain, mydomain \ myid, myd, uid = myid, etc .... – Larry

+0

Supongo que el nombre de usuario/contraseña no tiene caracteres extraños que puedan causar este problema. No estoy seguro de cuánto control tiene sobre el entorno, pero también sería útil detectar los paquetes de red y/o acceder a los registros de AD. ¡Al parecer has intentado todo lo demás! – bubbly

+0

THX Kevin! ¡Lo logro para que funcione! Justo ahora no puedo poner aquí como solución, debido a mi límite de cuenta (tengo menos de 100 representantes). Voy a poner la respuesta completa en las próximas 8 horas, thx Hubo dos problemas/errores. primero) que no especificó el contenedor, lo que siguió Kevin pistas: segundo) puse el DN base y nombre de usuario juntos dentro de parámetros connectionUsername: ... connectionUsername = "uid = myid, O = este dominio" No sé si esto podría ser una solución general, pheraps está relacionado con la configuración ADAS de mi empresa, no lo sé. @Kevin: Muchas gracias. ¡He sido útil! – Larry

0

WebConfig

<add key="LDAPPath" value="LDAP://ip/DC=company,DC=com" /> 
<add key="LDAPDomain" value="ta" /> 

C# código

LoginRslt = adAuth.IsAuthenticated (ConfigurationSettings.AppSettings [ "LDAPDomain"] ToString(), _username, _password.);

Cuestiones relacionadas