自定义凭据提供程序:登录屏幕上未显示的登录用户

Custom Credential Provider: logon users who are not displayed on logon screen

我们正在为 Windows 10 实施基于硬件令牌的自定义凭证提供程序,基于 ICredentialProviderICredentialProviderCredential 等。

这对于 在登录屏幕上显示 为磁贴的用户来说效果很好:插入令牌后,我们通过调用 [=12= 请求重新枚举凭据],然后在 ICredentialProvider::GetCredentialCount 中指定我们已将凭据设置为默认凭据并执行自动登录。

问题是在 Windows10 上,并不是所有本地用户都显示在磁贴列表中,只有那些当前登录的用户,加上之前登录的最后一个用户。
如果我们 return 用户的凭据 未显示 在磁贴中,但具有有效的 SID 并将其指定为默认值并自动登录 - 没有任何反应,即。凭证的 ICredentialProviderCredential::GetSerialization 未被调用。

如何为未显示的用户执行自动登录?

内置的基于指纹的提供程序可以做到这一点。

我不得不绕过它并通过它。我从 Windows Vista 开始,后来添加了很多代码和逻辑来支持 Windows 10 的新功能,就像你说的这个。

您必须在 GetCredentialCount/GetCredentialAt 枚举另一个未链接到任何用户的 "empty" 磁贴。

然后你可以修改它,使用任何用户自动登录。