C# .NET - Получение информации по пользователю в домене
В данной публикации приведен пример получения информации по пользователю в домене AD с использованием C#.
Для того чтобы всё заработало необходимо подключить библиотеку:
using System.DirectoryServices.AccountManagement;
Затем можно получать параметры по пользователю.
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
var loginName = HttpContext.User.Identity.Name.ToString();
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, loginName);
if (user != null)
{
// Получаем SID пользователя
var userSid = user.Sid;
// Получаем EMail пользователя
var userEmail = user.EmailAddress;
// Получаем Количество неудачных попыток входа пользователя
var userBadLogons = user.BadLogonCount;
// ФИО пользователя ( отображаемое имя)
var userName = user.DisplayName;
// Системное имя (по сути логин)
var userSamAccountName = user.SamAccountName;
var userFullName = String.Format("{0} {1} {2}", userName, userSamAccountName, userBadLogons);
ViewBag.Message = userFullName;
}
В данном примере loginName получает логин доменного пользователя от HttpContext.
Приведенный выше код предназначен для ASP.NET MVC.
Однако, ничто не мешает использовать его в любых других типах приложений, просто передав в переменную loginName Имя доменного пользователя вида: «домен\логин».