MVC Active Directory Членство

Я пытаюсь использовать членство в активном каталоге, а не SQL, но в Интернете очень ограниченная документация. Мне удалось подключить мое приложение к контроллеру домена без каких-либо проблем, но когда вы используете "Context.User.Identity.Name", появляется DOMAIN\User. Я хочу в основном развернуть и получить информацию, такую ​​как полное имя, адрес электронной почты и т. Д.

Мне просто нужна полезная ссылка, и поиск, который я сделал, похоже, никуда меня не привел!

Большое спасибо

3 ответа

Решение

Это должно дать вам некоторую подсказку: http://msdn.microsoft.com/en-us/library/ms973834.aspx и вот список свойств LDAP, с которыми вы, возможно, захотите поиграться в результате поиска: http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm

Если вы используете Active Directory, то, скорее всего, вы используете проверку подлинности Windows. Если это так, все, что вам нужно сделать, это:

  1. Ссылка System.DirectoryServices.AccountManagement

  2. В коде (возможно, действие контроллера или конструктор модели)

    // устанавливает ваш домен в качестве контекста для поиска вашего пользователя var PrincipalContext = new PrincipalContext (ContextType.Domain, "domainName");

    // получает объект UserPrincipal текущего пользователя var userPrincipal.FindByIdentity(PrincipalContext, @ User.Identity.Name)

    // пример var email = userPrincipal.EmailAddress;

Замечания:

  • Это работает, потому что проверка подлинности Windows означает User.Identity на текущий HttpContext это WindowsIdentity и, таким образом, его Name свойство может быть использовано для поиска AD.

  • Вы не ограничены поиском текущего пользователя. Ты можешь использовать FindByIdentity() искать любое переданное значение, и этот метод существует на других принципалах (например, GroupPrincipal). Вы также можете указать, что вы хотите искать по другому типу, например, SID вместо имени.

Наслаждайтесь!

Вы пробовали с этим документом?

http://msdn.microsoft.com/en-US/library/system.web.security.activedirectorymembershipprovider%28v=vs.90%29.aspx

Может помочь?

Другие вопросы по тегам