WindowsPrincipal.IsInRole
просто проверяет, является ли пользователь членом группы с таким именем; Группа Windows - это роль . Вы можете получить список групп, в которые входит пользователь, из свойства WindowsIdentity.Groups
.
Вы можете получить WindowsIdentity
от вашего WindowsPrincipal
:
WindowsIdentity identity = WindowsPrincipal.Identity as WindowsIdentity;
или вы можете получить его из фабричного метода в WindowsIdentity:
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsIdenity.Groups
представляет собой набор IdentityReference
, который просто дает вам SID группы. Если вам нужны имена групп, вам нужно будет перевести IdentityReference
в NTAccount
и получить значение:
var groupNames = from id in identity.Groups
select id.Translate(typeof(NTAccount)).Value;