2012-01-29 27 views
6

Ben bu parametrelere sahip bir çalışma LDAP Sunucusu vardır:ASP.NET MVC: LDAP kimlik doğrulaması için web.config nasıl ayarlanır?

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

Ben aşağıdaki ayarlarla iyi Jarek Gawor en ldap tarayıcı/istemci gibi genel bir ldap istemci başarıyla erişim :

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

ASP.NET ile aynı şeyi denedim, her zaman hata alıyorum "yanlış kullanıcı adı veya parola". Yukarıdaki parametrelerle web.config kurulumunu yapmama yardımcı olabilir misiniz, lütfen? Ben, önceden

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

Teşekkür, connectionUsername değişen domainname kaldırarak, vb uid = MyID koyarak gibi

tek öğe eksik
+0

'Mypass' veya' mypwd' veya sadece bir yazım hatası mı? –

+0

Üzgünüz @WiktorZychla, bu sadece bir örnekti. Şifremi mypwd olarak standartlaştırdım. THX – Larry

cevap

2

yukarıda aldık.

iki sorun/hata vardı:

1) Ben kapsayıcı belirten yoktu, bu yüzden Kevin'in ipuçları @ ardından: Ben o CN ilgili olduğunu düşünüyorum

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

O iken Burada ihmal edilebilir, ama bu çok önemli değil ...

2) DN baz ve kullanıcı adı (formda uid =) bağlantısı içinde parametresi:

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

unutmayın, benim durumumda ben uid = MyID koymak gerekiyordu. Bunun genel bir çözüm olup olmadığını bilmiyorum; belki de benim şirketimin ADAS konfigürasyonu ile ilgili, bilmiyorum. Umarım bu size yardımcı olabilir ... lütfen bu çözümü faydalı bulursanız, lütfen oy verin.

@Kevin: Çok teşekkür ederim. Çok yardımcı oldun!

0

birçok denemeden görünüyor vermedi varsayılan ou olmak. "/CN = Kullanıcılar, DC = testdomain1, DC = test, DC = com" altında takip eden girişi eklemeye çalıştınız mı?

 

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

Ben aşağıdaki web.config kurulum ile çalışmak alma başarılı http://msdn.microsoft.com/en-us/library/ff650307.aspx

+0

Teşekkür ederiz @Kevin. Maalesef işe yaramıyor. Neyse diğer ldap istemcileri ile ben sadece DN tabanlı = "OU = kullanıcı, OU = etkideyim, O = bu etki alanı" ve uid = myid ve parola = DN = değerini belirledim. myid @ mydomain, mydomain \ myid, myd, uid = myid, vs .... – Larry

+0

Kullanıcı adı/parola, bu soruna neden olabilecek herhangi bir garip karakterin olmadığını varsayalım. Envrionment üzerinde ne kadar kontrole sahip olduğunuzdan emin değilsiniz, fakat ağ paketlerini koklayarak ve/veya AD kayıtlarına erişmekte de yararlı olacaktır. Görünüşe göre herşeyi denediniz! – bubbly

+0

THX Kevin! Çalışmayı başarabilirim! Sadece şimdi hesap limiti (100'den az temsilcisi var) nedeniyle burayı çözüm olarak ekleyemem. Gelecek 8 saat içinde tam cevap vereceğim, thx İki problem/hata vardı. 1) Ben kabını belirtmedi, bu yüzden Kevin takip ipuçları: 2) Ben connectionUsername parametresinin içine araya DN tabanı ve kullanıcı adı koyun: ... connectionUsername = "uid = MyID, O = Bu alan adını" Bunun genel bir çözüm olup olmadığını bilmiyorum, pheraps firmamın ADAS konfigürasyonuyla ilgili, bilmiyorum. @Kevin: Çok teşekkür ederim. Ben yardımcı oldum! – Larry

0

WebConfig

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

C# kod

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

İlgili konular