Я могу получить атрибуты Active Directory от WindowsPrincipal?

Я хотел бы добраться, идентификатор сотрудника для в настоящее время входил в систему пользователь. Это легко доступно в некотором классе .NET, или я должен сделать своего рода запрос LDAP?

Любые приветствующиеся подсказки

5
задан Graeme 11 May 2010 в 08:05
поделиться

2 ответа

Еще проще - используйте новые возможности .NET 3.5 System.DirectoryServices.AccountManagement.

Подробности см. в статье MSDN Managing Directory Security Principals in the .NET Framework 3.5.

PrincipalContext ctx = new PrincipalContext(ContextType.Domain. "YOURDOMAIN");

UserPrincipal user = UserPrincipal.FindByIdentity(ctx, loginName);

if(user != null)
{
   string empID = user.EmployeeId;
}

Новые сильно типизированные классы принципалов упрощают работу с AD.

6
ответ дан 14 December 2019 в 19:05
поделиться

Используемый запрос AD - очень просто:

DirectorySearcher ds = new DirectorySearcher();
ds.PropertiesToLoad.Add("employeeID");
ds.Filter = String.Format("(&(objectCategory=person)(sAMAccountName={0}))", loginName);

result = ds.FindOne();
if (result != null)
{
    personnelNumber = result.Properties["employeeID"][0].ToString();
}
-1
ответ дан 14 December 2019 в 19:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: