gpt4 book ai didi

c# - 使用 System.DirectoryServices.xxx 是否可以确定用户可以管理哪些 AD 组?

转载 作者:行者123 更新时间:2023-11-30 12:13:35 30 4
gpt4 key购买 nike

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

Active Directory 中的什么指示用户可以编辑组的成员以及我如何使用 System.DirectoryServices 在 3.5+ 中查找它

我使用以下方法获取用户的组

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)
...
}
}

感谢任何帮助

最佳答案

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

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

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

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

关于c# - 使用 System.DirectoryServices.xxx 是否可以确定用户可以管理哪些 AD 组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425620/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com