从active directory(C#中的System.DirectoryServices.AccountManagement)检索组下的用户列表时出错
从active directory检索组下的用户时出错。错误描述为 {“无法检索有关域的信息(1355)”}。尝试使用.NET4.0和.NET4.5。 我收到错误的那一行将被错误消息注释从active directory(C#中的System.DirectoryServices.AccountManagement)检索组下的用户列表时出错,c#,.net,authentication,active-directory,C#,.net,Authentication,Active Directory,从active directory检索组下的用户时出错。错误描述为 {“无法检索有关域的信息(1355)”}。尝试使用.NET4.0和.NET4.5。 我收到错误的那一行将被错误消息注释 public List<DirectoryUser> GetUsersUnderGroup(string groupName) { var directoryUserList = new List<DirectoryUser>(); string
public List<DirectoryUser> GetUsersUnderGroup(string groupName)
{
var directoryUserList = new List<DirectoryUser>();
string directoryServerIp="192.168.1.xxx";
string ouName="xxxOuName";
string domainComponents="DC=xxxComopnent1,DC=xxxComponent2";
string directoryAdminUserId="directoryAdminuser";
string directoryAdminPassword="directoryAdminPassword";
using (var principalContext = principalContext = new PrincipalContext(ContextType.Domain, directoryServerIp, string.Format("OU={0},{1}", ouName, domainComponents), directoryAdminUserId, directoryAdminPassword);)
{
using (var group = GroupPrincipal.FindByIdentity(principalContext, groupName))
{
if (group != null)
{
var users = group.GetMembers(true);
//Works fine till the above line. variable users is having not null value but
//exception while iterating through the loop.Following is the exception
//{"Information about the domain could not be retrieved (1355)."}
foreach(var user in users)
{
Console.Write(user.DistinguishedName);
}
}
}
}
return directoryUserList;
}
public List GetUsersUnderGroup(字符串groupName)
{
var directoryUserList=新列表();
字符串directoryServerIp=“192.168.1.xxx”;
字符串ouName=“xxxOuName”;
字符串domainComponents=“DC=xxxComponent1,DC=xxxComponent2”;
字符串directoryAdminUserId=“directoryAdminuser”;
字符串directoryAdminPassword=“directoryAdminPassword”;
使用(var principalContext=principalContext=new principalContext(ContextType.Domain,directoryServerIp,string.Format(“OU={0},{1}”,ouName,domainComponents),directoryAdminUserId,directoryAdminPassword);)
{
使用(var group=GroupPrincipal.FindByIdentity(principalContext,groupName))
{
如果(组!=null)
{
var users=group.GetMembers(true);
//在上一行之前工作正常。变量用户没有空值,但
//在循环中迭代时发生异常。以下是异常
//{“无法检索有关域的信息(1355)。”}
foreach(用户中的var用户)
{
Console.Write(user.differentiedName);
}
}
}
}
返回directoryUserList;
}
用于创建PrincipalContext的代码在其他场景(如获取组列表和OU等)中运行良好。本文介绍了出现问题的原因和可能的解决方案:。基本上,如果您不是从域控制器所在的机器上运行代码,则必须使用DirectoryEntry类。
这篇文章应该能帮助你理解这个类:你有没有尝试过在谷歌上搜索“无法检索到关于域名的信息(1355)”?大量点击。尝试了一些技术,如指定ContextOptions,例如ContextOptions.SimpleBind。巴德没有工作。