public static DirectoryEntry GetDirectoryObject()
{
DirectoryEntry oDE;
oDE = new DirectoryEntry(ADPath);
oDE.Username = AdministratorUser;
oDE.Password = AdministratorPassword;
return oDE;
}
public string GetXMl() {
string loginname=SPContext.Current.Web.CurrentUser.LoginName.ToString();
loginname = loginname.Substring(loginname.IndexOf("\\") + 1, loginname.Length - (loginname.IndexOf("\\") + 1));
DirectoryEntry de;
de = GetDirectoryObject();
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
deSearch.Filter = "(&(objectClass=user)(samaccountname=" + loginname + "))";
SearchResultCollection results = deSearch.FindAll();
de.Close();
if (results.Count > 0)
{
return results[0].Path;
}
else {
return null;
}
}
public bool UserIsExsitGroup(DirectoryEntry de, string GroupName)
{
bool f = false;
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
deSearch.Filter = "(&(objectClass=group) (cn=" + GroupName + "))";
SearchResult Groupresult = deSearch.FindOne();
if (Groupresult != null)
{
string loginName=GetXMl();
//DirectoryEntry user = GetDirectoryEntry("LDAP://AD服务器地址/" + loginName);
DirectoryEntry user = GetDirectoryEntry(loginName);
if (user != null)
{
DirectoryEntry dirEntry = Groupresult.GetDirectoryEntry();
if (dirEntry.Properties["member"].Contains(loginName.Replace("LDAP://AD服务器地址/","")))
{
f= true;
}
}
user.Close();
}
return f;
}