ASP.NET MVC: как настроить web.config для аутентификации LDAP? - PullRequest
6 голосов
/ 29 января 2012

У меня есть работающий LDAP-сервер со следующими параметрами:

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

Я успешно доступ с помощью стандартного клиента ldap , как в браузере ldap хорошего Джарека Гавора/ client со следующими настройками:

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

Я пытался сделать то же самое с ASP.NET, получая всегда ошибку " неправильное имя пользователя или пароль ".Можете ли вы помочь мне настроить web.config с указанными выше параметрами, пожалуйста?Я сделал много попыток, таких как изменение connectionUsername, удаление имени домена, установка uid = myid и т. Д. ...

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

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 30 января 2012

Мне удалось заставить его работать со следующей web.config настройкой.

Были две проблемы / ошибки:

1-й) Я не указал контейнер, поэтому я следовал подсказкам @ Кевина:

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

Я думаю, что это актуальноCN, в то время как O здесь можно было бы опустить, но я не думаю, что это очень важно ...

2nd) Я объединил базу DN и имя пользователя (в форме uid =)внутри connectionUsername параметр:

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

Обратите внимание, в моем случае мне нужно было указать uid = myid.Я не знаю, может ли это быть общим решением;возможно, это связано с настройкой ADAS моей компании, я не знаю.Я надеюсь, что это может помочь некоторым из вас ... пожалуйста, проголосуйте, если вы найдете это решение полезным, спасибо.

@ Кевин: Большое спасибо.Вы были очень полезны!

0 голосов
/ 09 мая 2013

WebConfig

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

код C #

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

0 голосов
/ 29 января 2012

Единственный отсутствующий элемент, кажется, по умолчанию ou. Вы пытались добавить вторую запись ниже " / CN = Users, DC = testdomain1, DC = test, DC = com "?


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

Я получил выше от http://msdn.microsoft.com/en-us/library/ff650307.aspx

...