Поставщик учетных данных Windows7 для автоматического входа пользователя в систему при аппаратном событии

Я разрабатываю собственный поставщик учетных данных для Windows 7. Моя цель — автоматически входить в систему пользователя при возникновении определенного аппаратного события. Я прочитал все статьи MSDN, связанные с этим, и реализовал простой поставщик учетных данных, который взаимодействует с внешним устройством, чтобы получить имя пользователя и пароль и передать их в WinLogon.

Но я все еще застрял с последней частью головоломки. В настоящее время пользователю по-прежнему приходится нажимать кнопку входа в систему, чтобы войти в систему. Как лучше всего сделать это автоматически?


person Vlad    schedule 23.12.2011    source источник


Ответы (2)


В настоящее время я работаю над тем же и думаю, что

a) в функции Provider::GetCredentialCount вы устанавливаете pdwDefault и устанавливаете pbAutoLogonWithDefault в true
или
b) в Credential::SetSelected вы устанавливаете pbAutoLogon в true.

С а) у пользователя нет выбора, а с б) он должен сначала выбрать учетную запись.

person Community    schedule 10.03.2012
comment
Правильно, это именно то, что я в итоге сделал. Этот вопрос был опубликован несколько месяцев назад. Мне просто было лень писать ответ здесь. - person Vlad; 11.03.2012
comment
Я борюсь с образцами. Я хочу инициировать вход или разблокировку с помощью внешнего события, но не знаю, как это сделать. Я понимаю, что для параметра pbAutoLogonWithDefault установлено значение true в Provider::GetCredentialCount, но как заставить LogonUI вызывать Provider::GetCredentialCount? Кроме того, предоставляются ли серийные учетные данные LogonUI или мне нужно использовать сохраненные имена пользователей и пароли. Любая помощь будет здорово, спасибо! - person piusvelte; 30.10.2012
comment
@ Влад, у кого-нибудь из вас есть пример кода для этого, который вы можете предоставить? Я работаю над чем-то подобным и не могу взаимодействовать со своим аппаратным устройством. - person Sean Dunford; 03.07.2013
comment
@Sean Извините, я не прикасался к этому проекту больше года. И весь код для него находится под NDA. - person Vlad; 03.07.2013
comment
Создайте поток, который будет отслеживать аппаратное событие. После возникновения события вызов ICredentialProviderEvents::CredentialsChanged с помощью AdviseContext должен повторно перечислить учетные данные, для которых для автоматического входа в систему может быть задано значение true. - person Wander3r; 12.12.2016

После заполнения учетных данных вызовите ICredentialProviderEvents::CredentialsChanged.

person Alex    schedule 12.04.2015