首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrincipalContext:异常详细信息:发生System.DirectoryServices.DirectoryServicesCOMException: An PrincipalContext错误

PrincipalContext:异常详细信息:发生System.DirectoryServices.DirectoryServicesCOMException: An PrincipalContext错误
EN

Stack Overflow用户
提问于 2018-01-31 04:34:23
回答 1查看 761关注 0票数 1

我正在尝试搜索一个用户的广告,但它一直抛出一个异常。应用程序设置为使用AppPool。我确信登录的用户有权搜索广告。

代码:

代码语言:javascript
复制
public static UserADInfoModel ResolveUserProperties(string sam)
        {
            UserADInfoModel uad = new UserADInfoModel();
            PrincipalContext DC = new PrincipalContext(ContextType.Domain, 
            "lm.lmig.com", "DC=lm,DC=lmig,DC=com,OU=LM Users");
            UserPrincipal userSearch = new UserPrincipal(DC);
            userSearch.SamAccountName = "(&(objectClass=user)(sam)";
            PrincipalSearcher search = new PrincipalSearcher();
            search.QueryFilter = userSearch;
            PrincipalSearchResult<Principal> res = search.FindAll();

堆栈跟踪:

代码语言:javascript
复制
[DirectoryServicesCOMException (0x80072020): An operations error occurred.
]
   System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +399003
   System.DirectoryServices.DirectoryEntry.Bind() +36
   System.DirectoryServices.DirectoryEntry.get_SchemaEntry() +35
   System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de) +47
   System.DirectoryServices.AccountManagement.ADStoreCtx..ctor(DirectoryEntry ctxBase, Boolean ownCtxBase, String username, String password, ContextOptions options) +116
   System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(DirectoryEntry entry) +143
   System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit() +244

源错误:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-01 01:43:29

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

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

请尝试以下方式:

代码语言:javascript
复制
 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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48530074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档