Я хочу различать два разных типа пользователей на сайте ASP.NET Web Forms, который я создаю.
Все пользователи находятся в моем AD, и я различаю их, помещая их в две разные организационные единицы, называемые: LRDB и IPPDB.
Когда я пытаюсь проверить их при входе в систему, используя этот путь LDAP:
<add name="ADConnectionString" connectionString="LDAP://test.example.com:389/DC=test,DC=com,OU=IPPDB" />
Я получаю сообщение об ошибке сервера:
Описание: Произошла ошибка при обработке файла конфигурации, необходимого для обслуживания этого запроса. Ознакомьтесь с приведенными ниже сведениями об конкретной ошибке и соответствующим образом измените файл конфигурации.
Сообщение об ошибке синтаксического анализатора: Произошла ошибка операции.
И строка, в которой у меня есть поставщик членства, выделена как источник ошибки.
<add enableSearchMethods="true" connectionStringName="ADConnectionString" name="MembershipADProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
Однако, когда я изменяю свой путь LDAP, чтобы исключить часть OU, это «работает». Работает в том смысле, что аутентифицируется ВСЕ, кто находится в AD, а не только члены организационного подразделения.
Если я не могу избежать всей этой неразберихи, я подумал, что, может быть, МОЖНО позволить пути LDAP не иметь OU, а затем, как только он выяснит, что пользователь является частью AD, он затем проверит, какое OU это часть. Однако я не вижу свойства для OU. Вот как должен выглядеть код. Есть ли способ получить OU от пользователя?
Спасибо за помощь!
--РЕШЕНИЕ ------------------
Благодаря marc_s:
Я считаю, что это должно быть
connectionString="LDAP://test.example.com:389/OU=IPPDB,DC=test,DC=com"
OU= сначала перед DC= частями
connectionString="LDAP://test.example.com:389/OU=IPPDB,DC=test,DC=com"- OU сначала передDC=частями - person marc_s   schedule 08.08.2012DC=— это верхний уровень вашего домена). - person marc_s   schedule 08.08.2012