Проверка подлинности Windows для winforms с Windows 2000 - PullRequest
0 голосов
/ 26 мая 2010

Я использую следующий код для проверки пользователей с помощью проверки подлинности Windows для моего приложения winform. Это прекрасно работает с Windows XP, но когда пользователь использует Windows 2000, он говорит, что идентификатор пользователя или пароль верны.

Как мне это сделать в Windows 2000. Далее, Как мне определить, использует ли пользователь Windows Xp или Windows 2000.

        [System.Runtime.InteropServices.DllImport("advapi32.dll")]
    public static extern bool LogonUser(string userName, string domainName, string password, int LogonType, int LogonProvider, ref IntPtr phToken);

    public bool IsValidateCredentials(string userName, string password, string domain)
    {
        IntPtr tokenHandler = IntPtr.Zero;
        bool isValid = LogonUser(userName, domain, password, 2, 0, ref tokenHandler);
        return isValid;
    }

Спасибо

1 Ответ

0 голосов
/ 26 мая 2010

Как указано в документации для LogonUser:

Windows 2000 : если вам нужно подтвердить учетные данные, используйте API-интерфейсы SSPI. За информация об использовании API SSPI, см. Как проверить учетные данные пользователя в операционных системах Microsoft . использование функция LogonUser или LogonUserEx если вам нужно выдать себя за пользователя используя возвращенный токен доступа и получить доступ к ресурсу.

Чтобы проверить, на какой версии Windows вы работаете, отметьте Environment.OSVersion.Version.

Windows 2000 - 5.0; XP - 5,2.

Кроме того, вам необходимо , чтобы закрыть ручку, позвонив по номеру CloseHandle.

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