Создание Active Directory имен пользователей для доступа к LDAP

Я новичок в LDAP и Active Directory.

Мне нужно создать активный каталог пользователей, которые имеют право доступа к определенному компьютеру. Когда пользователь вводит имя пользователя и пароль в веб-интерфейсе (созданном на C#), они отправляются в активный каталог через запрос LDAP в активный каталог. AD вернет адрес электронной почты пользователя, если вход будет успешным.

Можно ли настроить Active Directory для локального выполнения описанного выше сценария? Я использую Windows 7 Ultimate. Я установил ADAM для доступа к LDAP.

С уважением,

Джон.


person logeeks    schedule 29.04.2011    source источник


Ответы (1)


Поскольку вы используете .NET 3.5 и выше, вам следует проверить пространство имен System.DirectoryServices.AccountManagement (S.DS.AM). Прочтите все об этом здесь:

Управление принципами безопасности каталогов в .NET Framework 3.5

По сути, вы можете определить контекст домена и легко найти пользователей и/или группы в AD:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// validate username/password combo
if (ctx.ValidateCredentials(username, password))
{
   // if valid - find user
   UserPrincipal user = UserPrincipal.FindByIdentity(ctx, username);

   if (user != null)
   {
                return user.EmailAddress;
   }
}

Новый S.DS.AM упрощает работу с пользователями и группами в AD!

Для ADAM (или AD LDS, как его называют сегодня) вы можете использовать

PrincipalContext ctx = new PrincipalContext(ContextType.ApplicationDirectory);

установить контекст с вашим каталогом ADAM - не уверен, но вам, вероятно, придется предоставить некоторую дополнительную информацию, чтобы узнать, какой каталог приложений использовать (я никогда не играл с этим в ADAM). А также: я не уверен, что вы можете проверить учетные данные в магазине ADAM ... вам просто нужно посмотреть и попробовать!

person marc_s    schedule 29.04.2011
comment
Спасибо marc_s. Является ли это последним подходом, рекомендованным Microsoft вместо System.DirectoryServices.DirectoryEntry. Я наткнулся на следующую ссылку, которая меня смутила. social.msdn.microsoft .com/forums/en-US/netfxbcl/thread/ - person logeeks; 29.04.2011
comment
@logeeks: да, это последняя/самая последняя библиотека MS для использования/работы с Active Directory. - person marc_s; 29.04.2011