Определите, является ли SID пользователем или группой

Можно ли определить, является ли данный SID пользователем или группой с использованием .NET? У меня есть список SID, который мне нужно отредактировать в списке, поэтому для пользователя и группы я хочу использовать разные значки.


person javros    schedule 11.03.2012    source источник


Ответы (2)


Вы можете попробовать это, используя System.DirectoryServices.AccountManagement:

//Get NTAccount, to find out username and domen
NTAccount nt = (NTAccount)sid.Translate(typeof(NTAccount));
string[] fullName = nt.Value.Split(new char[] { '\\' });

//then get group principle
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, fullName[0]);
GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, fullName[1]);

//and check whenever this group exists
bool SidIsAGroup = grp != null;

Вы можете найти аналогичный вопрос (и ответ) здесь: Как получить группы пользователя в Active Directory? (С#, asp.net)

person JleruOHeP    schedule 26.06.2012

Функция LookupAccountSid() возвращает значение SID_NAME_USE, указывающее тип учетной записи.

person Brian Cannard    schedule 25.06.2013