ASP.NET MVC: как настроить web.config для аутентификации LDAP?
у меня есть рабочий сервер LDAP с этими параметрами:
OU=users,OU=mydomain,O=this domain
LDAP://myhost:389
Я успешно открыть с общим клиентом ldap, как Ярек Гавор. доктор ветеринарных LDAP на браузера/клиента со следующими параметрами:
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="MYDOMAINmyid"
connectionPassword="mypwd"
attributeMapUsername="sAMAccountName"
enableSearchMethods="True" />
</providers>
</membership>
......
спасибо заранее
3 ответов
мне удалось заставить его работать со следующим web.config настройка.
есть две проблемы/ошибки:
1st) я не указал контейнер, поэтому я последовал подсказкам @Kevin:
<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 моей компании, я не знаю. Надеюсь, это поможет некоторым из вас...пожалуйста, проголосуйте, если вы найдете это решение полезно, спасибо.
@Kevin: большое спасибо. Вы мне очень помогли!
единственным отсутствующим элементом, по-видимому, является ou по умолчанию. Вы пробовали добавить трейлинг-запись ниже" / CN=пользователи, DC=testdomain1, DC=тест, 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
WebConfig
<add key="LDAPPath" value="LDAP://ip/DC=company,DC=com" />
<add key="LDAPDomain" value="ta" />
C# код
LoginRslt = adAuth.IsAuthenticated (ConfigurationSettings.AppSettings ["LDAPDomain"].ToString (), _username, _password);