目前,我使用PrincipalContext类调用ValidateCredentials方法来检查用户凭据。它在我们的2环境中工作正常,直到发生了一个相当“奇怪”的错误。
var configuration = ConfigurationManager.GetSection("PrincipalContextConfiguration") as PrincipalContextConfigurationSection;
var principalContext = new PrincipalContext(configuration.ContextType, configuration.Name, configuration.Container);
principalContext.ValidateCredentials(userName, password);
configuration.ContextType = "Domain"
configuration.Name = "example.local"
configuration.Container = "CN=Users,DC=example,DC=local"
以上是我们当前代码的示例,为简化查看而简化。如上所述,每次我们需要验证凭证时,我们都会创建一个新的PrincipalContext。
我们遇到的错误是,如果我们提供有效的用户名和密码,则此验证凭据可以正常工作。但对于特定的计算机,只要提供了无效的用户名和密码,就会抛出此错误,抛出异常并显示消息“LDAP服务器不可用”。
有人能指出我应该从哪里开始找到这个的根本原因。我们很奇怪,当用户名和密码不正确时,该方法只会抛出异常。我们通过使用PowerShell来调用方法来验证这一点。
我不是AD的专家。感谢。