我们正在基于ICredentialProvider
,ICredentialProviderCredential
等为Windows 10实现基于硬件令牌的自定义凭据提供程序。
这对于在屏幕上显示为的用户来说效果很好:插入令牌后,我们通过调用ICredentialProviderEvents::CredentialsChanged
要求重新枚举凭据,然后指定在ICredentialProvider::GetCredentialCount
中,我们已将一个凭据设置为默认凭据,并使用该凭据自动登录。
问题在于,在Windows 10上,并非所有本地用户都显示在图块列表中,仅显示了当前登录的用户,以及最近登录的最后一个用户。
如果我们为磁贴中未显示未显示的用户返回凭证,但该凭证具有有效的SID,并将其指定为默认凭证并自动登录,则不会发生任何事情。凭证的ICredentialProviderCredential::GetSerialization
不会被调用。
我们如何为未显示的用户执行自动登录?
内置的基于指纹的提供程序可以做到这一点。
答案 0 :(得分:1)
我只需要绕过它并通过它。我已经开始使用Windows Vista,后来又添加了许多代码和逻辑来支持Windows 10的新功能,例如您正在谈论的这一功能。
您必须在GetCredentialCount
/ GetCredentialAt
枚举另一个未链接到任何用户的“空”磁贴。
然后,您可以修改它并使用任何用户进行自动登录。