Как использовать аутентификацию Windows (локальный пользователь администратора машины) в приложении Windows, записанном в C#.
Потребность состоит в том каждый раз, когда пользователь открывает мое приложение Windows GUI, это должно аутентифицировать учетные данные локального администратора, даже если Пользователь зарегистрирован как Администратор там.
Это - окна Impersonation?
Вы можете вызвать метод API LogonUser
, чтобы проверить имя пользователя и пароль.
Вы можете увидеть [DllImport]
здесь .
Если вы хотите показать стандартный запрос имени пользователя и пароля, вы можете вызвать функцию API CredUIPromptForCredentials ; см. также здесь
Чтобы проверить, является ли пользователь администратором, вы можете вызвать CheckTokenMembership
и проверить, входит ли пользователь в группу Администраторы
.
Вы также можете вызвать NetUserGetInfo
уровень 1 и проверить, является ли usri1_priv
USER_PRIV_ADMIN
.
Вы также можете использовать WMI или DirectoryServices.
Один из способов: если ваши пользователи будут работать как стандартная учетная запись, если вы настроите свой файл манифеста на запуск от имени администратора, тогда он всегда будет запрашивать имя пользователя и пароль администратора.
Вы, вероятно, ищете 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
);