gpt4 book ai didi

c# - 从 Active Directory 检索安全组的安全权限

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:46 26 4
gpt4 key购买 nike

我正在尝试创建一个函数,在其中输入安全组 名称并返回安全权限列表。

如何获取安全组<的读取写入完全控制等安全权限列表 例如 Domain ControllersDomain Guests 等来自使用 C# 的 Active Directory?

最佳答案

您需要检查与 Active Directory 服务器通信的 LDAP 连接路径。

例如:

 DirectoryEntry rootDSE = null;
rootDSE = new DirectoryEntry("LDAP://OU=" + department + ",OU=Users,OU=" + ou + ",dc=corp,dc=local", username, password);

现在在那种情况下,我只需要存在于 Department → Users → OU → DC 中的组

与您的情况相同。您可以定义您的安全组所在的 OU。

之后我可以像这样获取一个组:

DirectorySearcher ouSearch = new DirectorySearcher(rootDSE);
ouSearch.PageSize = 1001;
ouSearch.Filter = "(objectClass=group)";
ouSearch.SearchScope = SearchScope.Subtree;
ouSearch.PropertiesToLoad.Add("name");
SearchResultCollection allOUS = ouSearch.FindAll();
foreach (SearchResult oneResult in allOUS)
{
dt.Rows.Add(oneResult.Properties["name"][0].ToString());
}
rootDSE.Dispose();

现在在权限的情况下

权限存储在各个文件系统项目中,例如文件和/或目录 - 或其他对象(如注册表项等)。当您拥有 AD 组或用户帐户时,您可以读取其 SID(安全标识符)属性 - 该 SID 将显示在整个 Windows 的 ACL(访问控制列表)中 - 但是从用户或组中,没有机制可以获取所有它可能在机器/服务器的任何地方拥有权限。

文件和目录的权限可以例如在 FileInfo 和 DirectoryInfo 类上使用 .GetAccessControl() 方法检索:

FileInfo info = new FileInfo(@"D:\test.txt");
FileSecurity fs = info.GetAccessControl();

DirectoryInfo dir = new DirectoryInfo(@"D:\test\");
DirectorySecurity ds = dir.GetAccessControl();

希望这就是您要找的!

关于c# - 从 Active Directory 检索安全组的安全权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458048/

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