我正在使用 Active Directory DirectoryServices.AccountManagement
API,并尝试使用以下代码连接到服务器:
PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, (server + ":" + port), loginUsername, loginPassword);
我想做的第一件事是检查loginUsername
andloginPassword
是否有效并且在 Active Directory 实例中具有足够的权限。为此,我调用以下命令:
bool x = principalContext.ValidateCredentials(null, null);
根据文档,这将验证构造函数中指定的凭据,因为null
已传递。在调试器中,抛出以下错误,表明凭据为假:
但是,ValidateCredentials 检查的实际结果奇怪地返回true
了,因此代码继续执行。
如何解决?
编辑:
这是另一个详细说明错误的屏幕截图。如屏幕截图所示,我正在调用该ValidateCredentials
方法,并传递null
用户名和密码的值,根据文档,这将尝试验证在 PrincipalContext 类的构造函数中传递的凭据。
屏幕截图还显示了通过的用户名和密码如何都是“测试”,它们是无效的并且不存在于 Active Directory 中。该方法返回 true,即使显示了许多错误。