我正在尝试使用 PrincipalContext 连接到 C# 中的 LDAP 服务器。我已经使用 Apache Directory Studio 验证了网络参数和身份验证设置都是正确的。这是我正在使用的代码:
string sDomain = @"vds.myCompany.net:1234";
string sDefaultOU = @"ou=apdev,ou=ads,o=vds";
string sUser = @"myUsername";
string sPassword = @"myPassword";
ContextOptions options = ContextOptions.SimpleBind | ContextOptions.SecureSocketLayer;
PrincipalContext context = new PrincipalContext(ContextType.Domain, sDomain, null, options, sUser, sPassword);
我必须使用 SSL 进行连接,并且我的凭据是 SSO。我尝试过使用和不使用 sDefaultOU 作为容器参数。它在最后一行抛出的错误是:
System.NullReferenceException:对象引用未设置为对象的实例。在 System.DirectoryServices.AccountManagement.PrincipalContext.ReadServerConfig(String serverName, ServerProperties& properties) 在 System.DirectoryServices.AccountManagement.PrincipalContext.DoServerVerifyAndPropRetrieval() 在 System.DirectoryServices.AccountManagement.PrincipalContext..ctor(ContextType contextType, String name, String container, ContextOptions 选项、字符串用户名、字符串密码)