您的位置:首页 > 其它

如何判断用户是否为AD域组成员

2009-09-04 11:17 295 查看
如何判断用户是否属于某个域组中成员呢,查了很多资料.下面将找到的资料共享下.

UserisGroupMember(UserLogin, RoleName) 用来判断用户是否为域组成员
注: 由于域组存在嵌套在其他域组的情况,我们需要进行遍历操作.

private static string ADPath = "LDAP://domain";

private static bool UserisGroupMember(string UserLogin, string RoleName)

private static bool MemberisGroupMember(string GroupName, string RoleName)
{
bool isfind = false;
DirectoryEntry entry = new DirectoryEntry(ADPath);
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = string.Format("(&(objectClass=group)(CN={0})) ", GroupName);
mySearcher.PropertiesToLoad.Add("memberof");
SearchResult mysr = mySearcher.FindOne();
string memberof;
try
{
if (mysr.Properties.Count > 1) // 返回两个属性,一个是内置的adspath,另一个是PropertiesToLoad加载的
{
foreach (Object myColl in mysr.Properties["memberof"])
{
memberof = myColl.ToString().Substring(3, myColl.ToString().IndexOf(",") - 3);
if (memberof == RoleName)
{
isfind = true;
break;
}
else if (MemberisGroupMember(memberof, RoleName))
{
isfind = true;
break;
}
}
}
}
catch (Exception ex)
{ }
return isfind;
}

参考资料:
/article/5029711.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: