【问题标题】:Using System.DirectoryServices.xxx is it possible to determine what AD Groups a user can manage?使用 System.DirectoryServices.xxx 是否可以确定用户可以管理哪些 AD 组?
【发布时间】:2012-07-11 04:34:32
【问题描述】:

我正在尝试为用户加载组列表,并希望显示他们是否有权编辑组成员资格。

Active Directory 中的内容表明用户可以编辑组的成员,我如何在 3.5+ 中使用 System.DirectoryServices 进行查找

我正在使用以下内容来获取用户的组

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(principalContext, userName);
if ( user != null)
{ 
    PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();
    foreach(Principal p in groups)
    {
        if ( p is GroupPrincipal)
            ...
    }
}

任何帮助表示赞赏

【问题讨论】:

    标签: c# asp.net active-directory


    【解决方案1】:

    由于对对象的权限管理方式,这非常耗时。类似的问题可能是“如何列出域中帐户可以写入数据的每个文件夹”。这很耗时的原因是因为每个对象都拥有自己的访问控制列表 (ACL)。

    我相当确定找出您可以管理的每个组的唯一方法是检查每个组并查看该组的权限,然后将您的组成员身份与该组的权限进行比较。

    In Active Directory, how do I determine type of ActiveDirectoryAccessRule? 有一些代码,如果这是您最终要走的路线,这些代码可能会很有帮助。

    更明智的方法可能是使用“Delegate”字段将权限委派给某些组,该字段可以使用 LDAP 轻松查询,或者让人们选择任何组,然后在选择组后检查该组的权限。

    【讨论】:

    • 干杯彼得,这很有帮助。通常只有大约 10 到 15 个组,所以我会尝试 AccessRule 方法,看看它带我去哪里:)
    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 2011-10-10
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    相关资源
    最近更新 更多