无法验证用户名和密码

时间:2016-04-19 13:21:55

标签: c# .net

我需要验证用户输入是否更正了当前会话窗口。因此我使用下面的代码:

private void LoginUser(string username, string password)
{
    bool isCredentialValid = false;

    using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
    {
        isCredentialValid = context.ValidateCredentials(username, password);
    }
    if (isCredentialValid)
    {
        //
    }
    else
    {
        //
    }
}

我总是将ValidateCredentials结果弄错的问题。

Rq :我正在使用.Net 4.5框架

1 个答案:

答案 0 :(得分:3)

来自MSDN http://msdn.microsoft.com/en-us/library/bb154889.aspx

  

ValidateCredentials方法绑定到中指定的服务器   构造函数。如果用户名和密码参数为null,则为   验证构造函数中指定的凭据。如果不   凭证在构造函数中指定,用户名和   password参数为null,此方法验证默认值   当前校长的证书。

在PrincipalContext构造函数中,您也可以指定要检查的凭据。

 using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, domain, 
                   container, ContextOptions.SimpleBind, username, password))
{
    return pc.ValidateCredentials(domain + @"\" + username, password,
                               ContextOptions.SimpleBind);
}

试试这个。