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. Если это так, все, что вам нужно сделать, это:
Ссылка
System.DirectoryServices.AccountManagement
В коде (возможно, действие контроллера или конструктор модели)
// устанавливает ваш домен в качестве контекста для поиска вашего пользователя 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 вместо имени.
Наслаждайтесь!
Вы пробовали с этим документом?
Может помочь?