Начало работы с ActiveDirectory в C#

Я работаю над приложением.NET, записанным в C# и WPF. В этом приложении мы будем аутентифицировать пользователей к серверу Active Directory. В конце мы могли бы хотеть поддерживать другие реализации LDAP также, поэтому если бы я могу создать это, не будучи ActiveDirectory-конкретным, который был бы преимуществом.

Что лучший подход должен начать с этим? Есть ли какие-либо хорошие ресурсы, которые я должен проверить? Я услышал, что существует библиотека в.NET для обработки связи с Active Directory - или там общая библиотека LDAP? Любой совет ценится!

Примечание: Я использую.NET 3.5.

8
задан Peter Mortensen 1 August 2010 в 12:33
поделиться

4 ответа

.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);
5
ответ дан 5 December 2019 в 14:03
поделиться
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 имеет фантастическое введение статьи , которая будет охватывать большинство сценариев, которые вы, вероятно, потребуют.

4
ответ дан 5 December 2019 в 14:03
поделиться

Если вы находитесь в .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 и т.д.)

.
2
ответ дан 5 December 2019 в 14:03
поделиться

Вам нужно перейти к сборке System.DirectoryServices. Вот несколько примеров: Запрос Active Directory с использованием .NET классов и LDAP запросов

1
ответ дан 5 December 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: