C# 获取所有用户';在C中从active directory中删除组#
我试图用c#代码获取active directory中的所有用户组 这是我的代码:C# 获取所有用户';在C中从active directory中删除组#,c#,active-directory,active-directory-group,C#,Active Directory,Active Directory Group,我试图用c#代码获取active directory中的所有用户组 这是我的代码: private List<GroupPrincipal> GetGroups() { string userName = User.Identity.Name; string host = Request.Url.Host.ToLower(); List<GroupPrincipal> result = new List<GroupPrincipal>(
private List<GroupPrincipal> GetGroups()
{
string userName = User.Identity.Name;
string host = Request.Url.Host.ToLower();
List<GroupPrincipal> result = new List<GroupPrincipal>();
UserPrincipal user = UserPrincipal.FindByIdentity(new PrincipalContext(ContextType.Domain, host), IdentityType.SamAccountName, userName);
foreach (GroupPrincipal group in user.GetGroups())
{
result.Add(group);
}
return result;
}
private List GetGroups()
{
字符串userName=User.Identity.Name;
string host=Request.Url.host.ToLower();
列表结果=新列表();
UserPrincipal user=UserPrincipal.FindByIdentity(新PrincipalContext(ContextType.Domain,host),IdentityType.SamAccountName,用户名);
foreach(user.GetGroups()中的GroupPrincipal组)
{
结果:添加(组);
}
返回结果;
}
我在以UserPrincipal user开头的行上收到一个错误,表示服务器无法连接。我正在从服务器本身运行代码,以便连接它
我做错了什么
提前谢谢你 要连接Active Directory,请创建PrincipalContext对象
PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, "MyDomain",
"DC=MyDomain,DC=com");
获取所有组的代码:
创建GroupPrincipal对象并调用SearchGroups(),它返回给定域的所有组的列表
private void ListGroups(){
GroupPrincipal insGroupPrincipal = new GroupPrincipal(insPrincipalContext);
insGroupPrincipal.Name = "*";
SearchGroups(insGroupPrincipal);}
private void SearchGroups(GroupPrincipal parGroupPrincipal)
{
List<Principal> oList = new List<Principal>();
PrincipalSearcher insPrincipalSearcher = new PrincipalSearcher();
insPrincipalSearcher.QueryFilter = parGroupPrincipal;
PrincipalSearchResult<Principal> results = insPrincipalSearcher.FindAll();
foreach (Principal p in results)
{
oList.Add(p);
}
}
private void列表组(){
GroupPrincipal InGroupPrincipal=新的GroupPrincipal(InPrincipalContext);
insGroupPrincipal.Name=“*”;
SearchGroups(insGroupPrincipal);}
私有无效搜索组(GroupPrincipal parGroupPrincipal)
{
List oList=新列表();
PrincipalSearcher InPrincipalSearcher=新PrincipalSearcher();
insPrincipalSearcher.QueryFilter=parGroupPrincipal;
PrincipalSearchResult results=insPrincipalSearcher.FindAll();
foreach(结果中的主要p)
{
增加(p);
}
}
此链接还将帮助您-
您是从web应用程序执行此操作的吗?是的,我是。我正在使用asp应用程序