Подтвердить что ты не робот

Получение информации о Active Directory при использовании проверки подлинности Windows?

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

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

4b9b3361

Ответ 1

Конечно!! Если вы используете .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 properties in a nice, object-oriented way
}

Ответ 2

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

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

var firstName = user.GivenName;
var lastName = user.Surname;

Ответ 4

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

<identity impersonate="true" />