Если вы используете .NET 3.5, ознакомьтесь с этой замечательной статьей MSDN Управление принципами безопасности каталогов в .NET Framework 3.5 .
Показывает новые расширенные возможности поиска в .NET 3.5 System.DirectoryServices.AccountManagement
namespace.
Одна приятная особенность - это метод FindByIdentity
, который позволяет вам найти пользователя (или группу) на основе идентификатора - будь то имя пользователя, отличительное имя, GUID или SID - это просто работа:
UserPrincipal user =
UserPrincipal.FindByIdentity(principalContext,
IdentityType.Sid, (value));
Необходимо убедиться, что SID указан в правильном формате - подробности см. В документах MSDN.
Как только у вас есть основной объект пользователя, просто получите его основное имя пользователя:
if(user != null)
{
string upn = user.UserPrincipalName;
}
В примере кода для статьи даже есть два дополнительных вспомогательных метода FindByIdentityGuid
и FindByIdentitySid
для достижения именно того, что вы ищете!
Пойди проверь его и используй.