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

时间:2019-07-23 09:51:41

标签: windows-10 credential-providers

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

这对于在屏幕上显示为的用户来说效果很好:插入令牌后,我们通过调用ICredentialProviderEvents::CredentialsChanged要求重新枚举凭据,然后指定在ICredentialProvider::GetCredentialCount中,我们已将一个凭据设置为默认凭据,并使用该凭据自动登录。

问题在于,在Windows 10上,并非所有本地用户都显示在图块列表中,仅显示了当前登录的用户,以及最近登录的最后一个用户。
如果我们为磁贴中未显示未显示的用户返回凭证,但该凭证具有有效的SID,并将其指定为默认凭证并自动登录,则不会发生任何事情。凭证的ICredentialProviderCredential::GetSerialization不会被调用。

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

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

1 个答案:

答案 0 :(得分:1)

我只需要绕过它并通过它。我已经开始使用Windows Vista,后来又添加了许多代码和逻辑来支持Windows 10的新功能,例如您正在谈论的这一功能。

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

然后,您可以修改它并使用任何用户进行自动登录。