在C#中使用Windows用户名密码

Raj*_*ahu 3 c# windows login credentials

我如何在C#APP中使用Windows存储的用户名和密码。我正在寻找返回成功登录的布尔状态的方法。表示:

bool isCredentialValid = CheckLogin(username, password);
Run Code Online (Sandbox Code Playgroud)

因此,根据布尔值,我可以显示正确的消息。

更新

class Program
{
    static void Main(string[] args)
    {
        PrincipalContext pc = new PrincipalContext(ContextType.Machine);
        Console.WriteLine("Enter username : ");
        string user = Console.ReadLine();

        Console.WriteLine("Enter password : ");
        string pass = Console.ReadLine();

        bool isValid = pc.ValidateCredentials(user, pass);

        Console.WriteLine("State : {0}",isValid);

        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

该代码不起作用。当我启用来宾帐户时,它对每个登录都显示为true;当我禁用来宾帐户时,它甚至不验证现有帐户。任何帮助,将不胜感激。

Vin*_*ayC 6

看一下PrincipalContext.ValidateCredentials方法。例如,

PrincipalContext pc = new PrincipalContext(ContextType.Domain);
bool isCredentialValid = pc.ValidateCredentials(username, password);
Run Code Online (Sandbox Code Playgroud)

对于本地帐户,请使用ContextType.Machine。

还有一种方法是使用win32 api LogonUser函数