Получение информации Active Directory при использовании аутентификации Windows? - PullRequest
13 голосов
/ 10 февраля 2011

Я использую аутентификацию Windows в своем приложении asp.net MVC 3. Можно ли каким-либо образом вытащить информацию о пользователях из активного каталога?

Я знаю, что могу использовать User.Name.Identity, и это работает для имени пользователя. Но как насчет получения имени пользователя, фамилии и даже описания или офиса из активного каталога. Возможно ли это через .net?

Ответы [ 4 ]

23 голосов
/ 10 февраля 2011

Конечно !! Если вы используете .NET 3.5 или более позднюю версию, это на самом деле довольно просто.

В основном, используйте пространство имен System.DirectoryServices.AccoutManagement (узнайте все об этомздесь: Управление принципами безопасности каталогов в .NET Framework 3.5 ).

Затем: вам нужно «найти» пользователя и получить его свойства - используйте код примерно так:

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

// find the user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "username");

if(user != null)
{
    // access the user's properties in a nice, object-oriented way
}
5 голосов
/ 12 ноября 2013

Если ваш код выполняется в контексте пользователя, для которого вам нужна информация, он становится еще легче (например, проверка подлинности Windows):

//Must reference System.DirectoryServices.AccountManagement
var user = UserPrincipal.Current;

var firstName = user.GivenName;
var lastName = user.Surname;
1 голос
/ 10 февраля 2011

Звучит так, как если бы вы захотели использовать пространство имен System.DirectoryServices . Вот руководство по чтению свойств объекта Каталога.

0 голосов
/ 11 июля 2017

В моей среде мне пришлось добавить это в раздел в Web.config:

<identity impersonate="true" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...