Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PrincipalContext:异常详细信息:System.DirectoryServices.DirectoryServicesCOMException:发生操作错误_C#_Active Directory_Directoryservices_Principalcontext_Principalsearcher - Fatal编程技术网

C# PrincipalContext:异常详细信息:System.DirectoryServices.DirectoryServicesCOMException:发生操作错误

C# PrincipalContext:异常详细信息:System.DirectoryServices.DirectoryServicesCOMException:发生操作错误,c#,active-directory,directoryservices,principalcontext,principalsearcher,C#,Active Directory,Directoryservices,Principalcontext,Principalsearcher,我试图搜索一个用户的广告,但它总是抛出一个异常。应用程序已设置为使用AppPool。我确信登录用户可以访问搜索广告 代码: 源错误: Line 45: PrincipalContext DC = new PrincipalContext(ContextType.Domain, "lm.lmig.com", "DC=lm,DC=lmig,DC=com,OU=LM Users"); Line 46: UserPrincipal userSearch =

我试图搜索一个用户的广告,但它总是抛出一个异常。应用程序已设置为使用AppPool。我确信登录用户可以访问搜索广告

代码:

源错误:

Line 45:             PrincipalContext DC = new PrincipalContext(ContextType.Domain, "lm.lmig.com", "DC=lm,DC=lmig,DC=com,OU=LM Users");
Line 46:             UserPrincipal userSearch = new UserPrincipal(DC);
Line 47:             userSearch.SamAccountName = "(&(objectClass=user)(sam)";
Line 48:             PrincipalSearcher search = new PrincipalSearcher();
Line 49:             search.QueryFilter = userSearch;

在我看来,在
PrincipalContext
构造函数中分配错误的值和分配给
SamAccountName
的值看起来可疑,似乎是异常的可能原因

DN应按相反顺序包含路径,即当OU和DC组件都存在时,应以OU或CN开始。此外,SamAccountName值必须是有效的字符串值

请尝试以下方法:

 PrincipalContext DC = new PrincipalContext(ContextType.Domain, 
        "lm.lmig.com", "OU=LM Users,DC=lm,DC=lmig,DC=com");
 userSearch.SamAccountName = sam; // assuming sam is an actual possible string value.
 // sAMAccountName must be a string value as shown above, and not a filter type.
 PrincipalSearcher search = new PrincipalSearcher();
 search.QueryFilter = userSearch;
 PrincipalSearchResult<Principal> res = search.FindAll();
PrincipalContext DC=新PrincipalContext(ContextType.Domain,
“lm.lmig.com”,“OU=lm用户,DC=lm,DC=lmig,DC=com”);
userSearch.SamAccountName=sam;//假设sam是实际可能的字符串值。
//sAMAccountName必须是如上所示的字符串值,而不是筛选器类型。
PrincipalSearcher=新PrincipalSearcher();
search.QueryFilter=userSearch;
PrincipalSearchResult res=search.FindAll();

谢谢!我很确定这是有效的。我再也不会犯那种错误了。
Line 45:             PrincipalContext DC = new PrincipalContext(ContextType.Domain, "lm.lmig.com", "DC=lm,DC=lmig,DC=com,OU=LM Users");
Line 46:             UserPrincipal userSearch = new UserPrincipal(DC);
Line 47:             userSearch.SamAccountName = "(&(objectClass=user)(sam)";
Line 48:             PrincipalSearcher search = new PrincipalSearcher();
Line 49:             search.QueryFilter = userSearch;
 PrincipalContext DC = new PrincipalContext(ContextType.Domain, 
        "lm.lmig.com", "OU=LM Users,DC=lm,DC=lmig,DC=com");
 userSearch.SamAccountName = sam; // assuming sam is an actual possible string value.
 // sAMAccountName must be a string value as shown above, and not a filter type.
 PrincipalSearcher search = new PrincipalSearcher();
 search.QueryFilter = userSearch;
 PrincipalSearchResult<Principal> res = search.FindAll();