我对 ASP.NET 和 Active Directory 有疑问。
我想知道用户是否在 Active Directory 的 Groupe 中,如果他在这个 Group 中,他可以看到更多。为此,我编写了一个带有过滤字符串的函数。问题是在我们公司,我们切换了组并且结构不是静态的。为此,我首先搜索组,然后使用参数 member-of 搜索组中的用户...
这是我们AD的结构:
这是我的 saerch 组代码:
public string GetGroup(string groupname)
{
string path = "<OurDomain>";
DirectoryEntry rootEntry = new DirectoryEntry(path);
DirectorySearcher srch = new DirectorySearcher(rootEntry);
srch.SearchScope = SearchScope.Subtree;
srch.Filter = "(&(objectCategory=Group)(name=" + groupname + "))";
SearchResult resFilter = srch.FindOne();
string filterpath = resFilter.Path;
return filterpath;
}
我查找用户的方法:
public bool IsUserInGroup(string username,string groupepath)
{
string path = "<OurDomain>";
DirectoryEntry rootEntry = new DirectoryEntry(path);
DirectorySearcher srch = new DirectorySearcher(rootEntry);
srch.SearchScope = SearchScope.Subtree;
srch.Filter = "(&(objectClass=user)(sAMAccountName=*" + username + "*)(memberof=CN=GastzugangUser,OU=SubFolderB,OU=FolderB,DC=company,DC=com))";
SearchResultCollection res = srch.FindAll();
if (res == null || res.Count <= 0)
{
return false;
}
else
{
return true;
}
}
如何在组的子组和动态中搜索用户?:(