У меня есть служба Windows, которую я хочу использовать для программной разблокировки рабочей станции, используя имя пользователя и пароль учетной записи.
Эта статья https://technet.microsoft.com/en-us/library/dn751047(v=ws.11).aspx объясняет рабочий процесс аутентификации при входе в Windows на следующем изображении:
Как видно выше, на шаге 5 пользователь вводит учетные данные в пользовательский интерфейс входа в систему. Я хочу добиться, чтобы служба Windows ввела учетные данные, а winlogon выполнил вход.
Для этого не существует API Winlogon. Как видно из других вопросов, использование функции winapi LogonUser
успешно выполняет аутентификацию и возвращает токен, но не переключается на рабочий стол приложения, а пользовательский интерфейс входа в систему остается на экране.
Большинство статей и ответов SO намекают на поставщиков учетных данных, но все образцы поставщиков учетных данных требуют взаимодействия пользователя с пользовательским интерфейсом входа в систему.
Обновление: я вижу, что некоторые пользователи не совсем поняли вопрос и предлагают обходные пути, которые в моем случае бесполезны. Рабочий процесс, которого я пытаюсь достичь, выглядит следующим образом:
- Служба Windows запускается при загрузке Windows (готово).
- Та же служба Windows имеет веб-службу и принимает HTTP-запросы через API (готово).
- Пользователь предоставляет учетные данные службе через API с другого устройства (готово).
- Предоставленные учетные данные используются для входа на рабочую станцию.
4.1 Предоставленные учетные данные используются также для разблокировки рабочей станции в случае блокировки (WinKey + L). - (Необязательно) Служба предоставляет учетные записи Windows через API.
- (Необязательно) Пользователь может указать службе, какую учетную запись он хочет использовать для входа в систему.
На данный момент меня интересуют шаги 4 и 4.1.
LogonUser
и используйте токен аутентификации для переключения на рабочий стол приложения. Любой другой метод приветствуется, если он позволяет службе успешно разблокировать станцию. - person Dog   schedule 31.12.2017