亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 C# 中獲取給定用戶/組的安全組權限

如何在 C# 中獲取給定用戶/組的安全組權限

C#
皈依舞 2022-06-12 10:47:46
我試圖找出用戶對給定安全組具有哪些權限。例如是否有讀、讀/寫、管理員等...我得到了他們所屬的組列表,但不知道如何獲得這些組的權限。private static void FindUserById(PrincipalSearcher ps, PrincipalContext pc, string name){    var up = new UserPrincipal(pc)    {        // EmailAddress = wildcard        // GivenName = wildcard        Name = name    };    ps.QueryFilter = up;    foreach (var found in ps.FindAll())    {        if (found is UserPrincipal user)        {            string line = $"{{\"Name\":\"{user.DisplayName}\", \"Email\": \"{user.EmailAddress}\"}},";            var groups = user.GetAuthorizationGroups();            Console.WriteLine(line);        }    }}
查看完整描述

1 回答

?
MMMHUHU

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("-------");

}


查看完整回答
反對 回復 2022-06-12
  • 1 回答
  • 0 關注
  • 193 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號