使用System.DirectoryServices.AccountManagement程序集中的PrincipalContext继续获取异常

时间:2009-04-27 23:14:31

标签: c# exception active-directory

使用System.DirectoryServices.AccountManagement程序集。

我正在使用构造函数

 PrincipalContext context = new PrincipalContext(
                ContextType.Domain,
                "myserver.ds.com", 
                "LDAP://OU=the-users,DC=myserver,DC=ds,DC=com", 
                adusername, 
                password);

我可以调用context.ValidateCredentials(adusername, password, ContextOptions.ServerBinding)并返回true。

我一打电话 UserPrincipal.FindByIdentity(context,IdentityType.SamAccountName,username);

我得到各种PrincipalOperationException。有时是“服务器发送推荐人”。其他时候是未知错误(0x80005000)

我正在使用这些重载,因为有问题的服务器不在同一个域中 运行程序的用户在。

无论如何,如何解决这个问题以及对程序参数的一些启示将是最受欢迎的。

先谢谢。

3 个答案:

答案 0 :(得分:6)

从您传递的容器字符串中删除LDAP://

之后应该可以正常工作。

答案 1 :(得分:0)

您能告诉我们您发送到FindByIdentity的确切值吗? PrincipalContext的创建似乎很好,如果它可以验证用户凭据,那么你的连接也应该没问题。传递给FindByIdentity的参数很可能有问题。

马克

答案 2 :(得分:0)