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;当我禁用来宾帐户时,它甚至不验证现有帐户。任何帮助,将不胜感激。
看一下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函数