используя пароль пользователя Windows в C # - PullRequest
3 голосов
/ 23 декабря 2010

как я могу использовать имя пользователя и пароль, сохраненные в Windows, в моем приложении C #.Я ищу метод, который возвращает состояние bool успешного входа в систему.означает:

bool isCredentialValid = CheckLogin(username, password);

, поэтому в соответствии со значением bool я могу отобразить правильное сообщение.

Обновлено

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();
    }
}

этот код не работает.когда я включаю Гостевая учетная запись , она показывает true для каждого входа в систему, а когда я отключаю Гостевая учетная запись , она не проверяет даже существующую учетную запись.Любая помощь будет оценена.

Ответы [ 2 ]

6 голосов
/ 23 декабря 2010

Взгляните на PrincipalContext.ValidateCredentials метод. Например,

PrincipalContext pc = new PrincipalContext(ContextType.Domain);
bool isCredentialValid = pc.ValidateCredentials(username, password);

для локальных учетных записей, используйте ContextType.Machine.

Еще один способ - использовать win32 api LogonUser function

2 голосов
/ 23 декабря 2010

Добавить using System.Security.Principal;

//for current Username full
 string str = WindowsIdentity.GetCurrent().Name;

Тогда вы можете использовать это имя пользователя для аутентификации.Для пароля это другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...