Как использовать аутентификацию Windows в Приложении Windows?

Как использовать аутентификацию Windows (локальный пользователь администратора машины) в приложении Windows, записанном в C#.

Потребность состоит в том каждый раз, когда пользователь открывает мое приложение Windows GUI, это должно аутентифицировать учетные данные локального администратора, даже если Пользователь зарегистрирован как Администратор там.

Это - окна Impersonation?

7
задан Ali 21 July 2017 в 22:27
поделиться

2 ответа

Вы можете вызвать метод API LogonUser , чтобы проверить имя пользователя и пароль.
Вы можете увидеть [DllImport] здесь .

Если вы хотите показать стандартный запрос имени пользователя и пароля, вы можете вызвать функцию API CredUIPromptForCredentials ; см. также здесь

РЕДАКТИРОВАТЬ

Чтобы проверить, является ли пользователь администратором, вы можете вызвать CheckTokenMembership и проверить, входит ли пользователь в группу Администраторы .

Вы также можете вызвать NetUserGetInfo уровень 1 и проверить, является ли usri1_priv USER_PRIV_ADMIN .

Вы также можете использовать WMI или DirectoryServices.

8
ответ дан 6 December 2019 в 14:01
поделиться

Один из способов: если ваши пользователи будут работать как стандартная учетная запись, если вы настроите свой файл манифеста на запуск от имени администратора, тогда он всегда будет запрашивать имя пользователя и пароль администратора.

Вы, вероятно, ищете LogonUser Win32 API для проверки информации аутентификации:

[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool LogonUser(
    string lpszUsername, 
    string lpszDomain, 
    string lpszPassword, 
    int dwLogonType, 
    int dwLogonProvider, 
    out IntPtr phToken
    );
3
ответ дан 6 December 2019 в 14:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: