Я работаю над приложением.NET, записанным в C# и WPF. В этом приложении мы будем аутентифицировать пользователей к серверу Active Directory. В конце мы могли бы хотеть поддерживать другие реализации LDAP также, поэтому если бы я могу создать это, не будучи ActiveDirectory-конкретным, который был бы преимуществом.
Что лучший подход должен начать с этим? Есть ли какие-либо хорошие ресурсы, которые я должен проверить? Я услышал, что существует библиотека в.NET для обработки связи с Active Directory - или там общая библиотека LDAP? Любой совет ценится!
Примечание: Я использую.NET 3.5.
.NET 3.5 сделала это значительно проще, чем раньше, добавив пространство имен System.DirectoryServices.AccountManagement. Если вы не находитесь в .NET 3.5, я бы перешел непосредственно в это пространство имен. Как обычно, в Code Project есть что-то, показывающее множество примеров использования .
Пример простоты, аутентификации пользователя:
var pc = new PrincipalContext(ContextType.Domain, "MyDomain", "DC=MyDomain,DC=com");
return pc.ValidateCredentials(username, pass);
while running:
lenli = len(li)
for i, elem in enumerate(li):
thiselem = elem
nextelem = li[(i+1)%lenli]
-121--1221189- Я бы избежал использовать System.Directoryservices. Как возможно. Определенно, по-видимому, облегчает все, но у меня были многочисленные проблемы с этим (например, игнорируя указанный порт), и это действительно просто легкая обертка вокруг System.DirectoryServices. Хотя у вас может быть удача с другими каталогами LDAP с ним, это, безусловно, не было предназначено для этого.
Я бы порекомендовал System.directoryservices. Сборка . Это немного сложнее начать и потребуется немного больше усилий, но вы найдете его намного более гибким с лучшей производительностью, и это гораздо больше стандартов. У меня был большой успех, используя его против ряда разных каталогов, включая объявление.
MSDN имеет фантастическое введение статьи , которая будет охватывать большинство сценариев, которые вы, вероятно, потребуют.
Если вы находитесь в .NET 3.5, обязательно посмотрите на пространство имен System.DirectoryServices.AccountManagement
- это сделало все намного проще, чем раньше!
Также обратите внимание на эту MSDN статью Managing Directory Security Principals in the .NET Framework 3.5 на эту тему - настоятельно рекомендуем!
Если вам нужно оставаться "общим" и поддерживать другие LDAP директории, вы можете также взглянуть на Введение в System.DirectoryServices.Protocol, который является сборкой и пространством имён Microsoft .NET, который работает с LDAP вызовами более низкого уровня и должен работать с любой LDAP совместимой директорией (Sun, Novell и т.д.)
. Вам нужно перейти к сборке System.DirectoryServices
. Вот несколько примеров: Запрос Active Directory с использованием .NET классов и LDAP запросов