.NET 4.x Получить имя пользователя из AD - C#
Формулировка задачи:
Добрый день.
Подскажите как получить ФИО пользователя из AD или с ПК.
Пользователь на ПК под доменной УЗ.
Получить данные такого вида: Иванов Иван Иванович
Решение задачи: «.NET 4.x Получить имя пользователя из AD»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.DirectoryServices.AccountManagement;
using System.Linq;
namespace XXX.YYY.AD
{
public class AdManager : IDisposable
{
private readonly object _syncRoot = new object();
public PrincipalContext Context { get; set; }
public AdManager(PrincipalContext context)
{
Context = context;
}
public List<UserPrincipal> GetAllUsers()
{
using (var principal = new UserPrincipal(Context))
using (var search = new PrincipalSearcher(principal))
using (var principalSearchResult = search.FindAll())
{
return principalSearchResult.Cast<UserPrincipal>().Where(result => result != null).ToList();
}
}
public UserPrincipal GetUser(string name)
{
using (var principal = new UserPrincipal(Context) {Name = name})
using (var search = new PrincipalSearcher(principal))
{
return (UserPrincipal) search.FindOne();
}
}
public void Dispose()
{
if (Context != null)
lock (_syncRoot)
if (Context != null)
{
Context.Dispose();
Context = null;
}
}
}
}