1 回答
TA贡献1834条经验 获得超8个赞
GetAuthorizationGroups()会给你一个GroupPrincipal对象列表。但是,GroupPrincipal不会公开对象的权限。它确实DirectoryEntry在幕后使用,您可以使用:
var groupDe = (DirectoryEntry) group.GetUnderlyingObject();
然后您可以使用该ObjectSecurity属性查看组对象的权限。
不过,这并不是非常直截了当。这个问题实际上有一些非常完整的代码来检索权限(就在问题中)。特别是这个:
var accessRules = groupDe.ObjectSecurity.GetAccessRules(true, true, typeof(NTAccount));
foreach (ActiveDirectoryAccessRule ar in accessRules)
{
Console.WriteLine($"{ar.IdentityReference.ToString()}");
Console.WriteLine($"Inherits - {ar.InheritanceType.ToString()}");
Console.WriteLine($"ObjectType - {ar.ObjectType.ToString()}");
Console.WriteLine($"InheritedObjectType - {ar.InheritedObjectType.ToString()}");
Console.WriteLine($"ObjectFlags - {ar.ObjectFlags.ToString()}");
Console.WriteLine($"AccessControlType - {ar.AccessControlType.ToString()}");
Console.WriteLine($"ActiveDirectoryRights - {ar.ActiveDirectoryRights.ToString()}");
Console.WriteLine($"IsInherited - {ar.IsInherited.ToString()}");
Console.WriteLine($"PropagationFlags - {ar.PropagationFlags.ToString()}");
Console.WriteLine("-------");
}
- 1 回答
- 0 关注
- 236 浏览
添加回答
举报
