6

Ho un server LDAP lavorare con questi parametri:ASP.NET MVC: come configurare web.config per l'autenticazione LDAP?

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

ho successo accesso con un client LDAP generica, come del buon Jarek Gawor LDAP Browser/cliente con le seguenti impostazioni:

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

Ho provato a fare lo stesso con ASP.NET, ottenendo sempre l'errore "nome utente o password errati". Puoi aiutarmi a configurare web.config con i parametri sopra, per favore? Ho fatto molti tentativi, come cambiare connectionUsername, la rimozione di dominio, mettendo uid = myid, ecc ...

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> 
...... 

Grazie in anticipo

+0

'mypass' o' mypwd' o è solo un errore di battitura? –

+0

Mi dispiace @WiktorZychla, era solo un esempio. Ho standardizzato la password come mypwd. THX – Larry

risposta

2

sono riuscito a ottenere il lavoro con il seguente web.config setup.

C'erano due problemi/errori:

1 °) Non ho specificare il contenitore, così ho seguito @ sentori di Kevin:

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

Credo che sia stato rilevante il CN, mentre O potrebbe essere omesso qui, ma non penso che sia molto importante ...

2a) Inserisco la base DN e il nome utente (nella forma uid =) insieme all'interno della connectionUnome utente Parametro:

<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" /> 

Si prega di notare, nel mio caso ho bisogno di mettere uid = myid. Non so se questa potrebbe essere una soluzione generale; forse è legato alla configurazione di ADAS della mia azienda, non lo so. Spero che questo possa aiutare alcuni di voi ... per favore votate se trovate utile questa soluzione, grazie.

@ Kevin: Grazie mille. Sei stato molto utile!

0

L'unico elemento mancante sembra essere il predefinito ou. Hai provato ad aggiungere la voce finale sotto "/CN = Users, DC = testdomain1, DC = test, DC = com"?

 

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

ho avuto la precedenza da http://msdn.microsoft.com/en-us/library/ff650307.aspx

+0

Grazie @Kevin. Sfortunatamente non funziona. In ogni caso con altri client LDAP ho appena impostato di base DN = "ou = utenti, OU = mydomain, O = questo dominio" e aggiungere uid = myid & password = MyPwd basare DN ... ho fatto diversi tentativi, cambiando il nome utente con myid @ mydomain, mydomain \ myid, myd, uid = myid, ecc .... – Larry

+0

io parto dal presupposto il nome utente/password non ha strani personaggi che potrebbero causare questo problema. Non so quanto controllo si hanno a disposizione l'envrionment, ma annusando i pacchetti di rete e/o l'accesso ai registri di annuncio sarebbe anche utile. Hai apparentemente provato tutto il resto! – bubbly

+0

THX Kevin! Sono riuscito a farlo funzionare! Proprio ora non posso mettere qui come soluzione, a causa del mio limite di account (ho meno di 100 rep). Metterò una risposta completa nelle prossime 8 ore, grazie a . Ci sono stati due problemi/errori. 1 °) Non ho specificare il contenitore, così ho seguito Kevin suggerimenti: 2 °) Ho messo la base DN e il nome utente insieme all'interno parametro connectionUsername: ... connectionUsername = "uid = myid, O = questo dominio" Non so se questa potrebbe essere una soluzione generale, gli scheher sono legati alla configurazione di ADAS della mia azienda, non lo so. @ Kevin: Grazie mille. Sono stato utile! – Larry

0

WebConfig

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

C# codice

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