Запрос домена AD через SSL - PullRequest
       16

Запрос домена AD через SSL

1 голос
/ 22 октября 2010

У меня есть домен и номер порта (636), а также имя пользователя и пароль.

Я пытаюсь найти способ подключиться к этой AD через Secure LDAP и получить имя пользователя, sn, mail и, возможно, несколько пользовательских атрибутов.

Однако я понятия не имею, как это сделать в C #.

Я думаю, что у Microsoft, возможно, уже есть метод для этого, но я собираюсь отложить вас всех.

Окончательное взаимодействие с пользователем будет следующим: см. Экран входа в систему, введите имя пользователя и пароль, эти учетные данные отправляются через LDAP, а информация о пользователях возвращается в мое веб-приложение, затем я регистрирую их, если все прошло хорошо ... Я не знаю, как будет выглядеть неудачная попытка, поэтому я могу отрицать их. Есть идеи?

Пожалуйста, включите примеры кода, чтобы я мог понять реализацию, спасибо!

Ответы [ 3 ]

3 голосов
/ 22 октября 2010

Вы даже пробовали google ?

EDIT

Извините за хабуб и заумный ответ. Я думаю, что проблема у вас в том, что вы не совсем правильно задали вопрос - здесь или в Google. Во всяком случае, вам не нужен здесь код C #. Вам просто нужно настроить свое веб-приложение, чтобы использовать AD в качестве поставщика членства. Вам понадобится строка подключения [получить это право было самой сложной частью]:

<connectionStrings>
    <add name="MyAd"
         connectionString="LDAP://adserver/OU=Users"
         />
</connectionStrings>

И поставщик членства:

<membership defaultProvider="AdProvider">
        <providers>
            <add 
                name="AdProvider"
                type="System.Web.Security.ActiveDirectoryMembershipProvider, 
                    System.Web, Version=2.0.0.0, 
                    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
                connectionStringName="MyAd"
                applicationName="ItRemoteHelpdesk"
                enablePasswordReset="false"
                 />
        </providers>
    </membership>

Затем пользователи могут войти в систему со своим обычным именем пользователя @ домен и паролем.

1 голос
/ 22 октября 2010

System.DirectoryServices.AccountManagement - это библиотека .NET, используемая для более новой аутентификации без LDAP AD.

Попробуйте этот сайт для хорошей отправной точки с примерами кода:

http://www.codeproject.com/KB/system/usingAccountManagement.aspx

0 голосов
/ 23 октября 2010

Вам определенно следует проверить пространство имен .NET 3.5 System.DirectoryServices.AccountManagement, как предлагает Брэд.

Чтобы хорошо понять, как его использовать, прочитайте эту статью в журнале MSDN: Управление каталогомПринципы безопасности в .NET Framework 3.5

В этой статье несколько раз говорилось о том, как безопасно (используя SSL) подключиться к вашему домену AD, и, например, как создать пользователей или получить информацию о них.Я думаю, что внимательно прочитав эту статью и попробовав примеры кода, вы получите хорошее представление о том, как сделать то, что вы ищете.

Обновление: совершенно очевидно, что все эти методы вS.DS.AM требует от вас аутентификации против AD.Новые классы также обеспечивают довольно простую проверку учетных данных пользователя (как показано в той статье, на которую я ссылался):

// establish context 
PrincipalContext domain = new PrincipalContext(ContextType.Domain);

// determine whether a user can validate to the directory
bool validated = domain.ValidateCredentials("user1", "Password1");
...