Меня интересует, как другие люди кодируют это, потому что я либо неправильно понимаю, либо что-то упускаю, либо, может быть, даже я делаю это правильно!
Прежде всего, этоНЕ является экземпляром Active Directory LDAP, его OpenDS, что, кроме некоторых синтаксических различий, не должно иметь большого значения.
Итак, предположим, что у меня есть настройка моей древовидной структуры примерно так:
-dc=somedomain,dc=com
-uid=rootuser
-ou=Group1
-uid=username1
-uid=username2
-ou=Group2
-uid=username3
-uid=username4
Чтобы аутентифицироваться как «rootuser», мне нужно будет пройти полное имя пользователя при создании моей системы..DirectoryServices.DirectoryEntry объект, в данном случае:
uid = rootuser, dc = somedomain, dc = com
, но для любого другого пользователя в дереве я должен заранее знать, какой путь LDAPдобавить к имени пользователя, чтобы они аутентифицировались через.Так, например, это не удастся:
uid = username1, dc = somedomain, dc = com
, но это будет работать:
uid = username1, dc = somedomain, dc= com, ou = Group1
Итак, мой вопрос: как вы справляетесь с этим, когда во время входа в систему вы не знаете, к какой конкретной группе принадлежит пользователь для создания этого пути?Единственный способ сделать это - сделать первоначальный вызов «rootuser», чтобы у меня был доступ ко всему дереву, а затем использовать System.DirectoryServices.DirectorySearcher, чтобы отсканировать его для конкретного пользователя (то есть username1)
* 1021.*
В этот момент у меня есть путь для пользователя, которого я хочу авторизовать, и я могу продолжить аутентификацию.Я далеко от базы здесь или это вообще как это делается?
спасибо!