如何在另一个用户磁贴上的多个用户磁贴上显示ICredentialProviderCredentialv2

如何在另一个用户磁贴上的多个用户磁贴上显示ICredentialProviderCredentialv2,c,login,com,credentials,credential-providers,C,Login,Com,Credentials,Credential Providers,我正在努力开发一个证书提供者v2。我正在试用微软提供的samplecredentialproviderv2。在安装了可再发行的2013并为正确的体系结构进行编译后,我注册了它,它成功了 我的问题是,它只对第一个显示的用户磁贴有效。如果我枚举了多个usertile,则它要么只显示在一个用户tile中,要么我出错并破坏了登录UI 我知道问题与此非常相似。在这里,我可以说我已经尝试了上述Microsoft文档中所述的解决方案。有一个函数指示是否显示“其他用户”磁贴,该函数工作得很好。唯一的问题是,el

我正在努力开发一个证书提供者v2。我正在试用微软提供的samplecredentialproviderv2。在安装了可再发行的2013并为正确的体系结构进行编译后,我注册了它,它成功了

我的问题是,它只对第一个显示的用户磁贴有效。如果我枚举了多个usertile,则它要么只显示在一个用户tile中,要么我出错并破坏了登录UI

我知道问题与此非常相似。在这里,我可以说我已经尝试了上述Microsoft文档中所述的解决方案。有一个函数指示是否显示“其他用户”磁贴,该函数工作得很好。唯一的问题是,else if不起作用,因为如果你得到一个合法的tile,getSid将无法到达else if。因此,如果您在getSid中返回null sid和hr_false,则credentialprovider将显示在另一个用户磁贴中,但在本例中,不会显示在其他地方。如果此解决方案是硬编码的。 我已经尝试创建多个ICredentialProviderCredential,这样我就有了一个接口列表,但它不起作用

提供的文件说明如下: “•v2凭据提供程序必须实现ICredentialProviderCredential2接口,并在GetUserSID函数上返回有效的SID。这将告诉Windows提供程序应与哪些用户关联。”

我的问题是,如何在GetUserSid函数中返回多个Sid。
如果您能提供帮助,那就太好了。

在ICredentialProvider::GetCredentialCount()中,您返回凭证提供程序将提供的凭证磁贴数(每个用户一个)(凭证提供程序可以从提供给SetUserArray()的用户数组中了解“有”多少用户)。返回不同的ICredentialProviderCredential2实例以响应登录对ICredentialProvider::GetCredentialAt()的每次调用,并从这些实例返回不同的SID以响应GetUserSID()。登录时,您的每个凭据都应该与不同的用户关联。

谢谢您,菲尔,在我查看日志后,这似乎很明显。因此,我将其标记为已解决。@Khalidjian我确实有完全相同的问题:我的CP v2仅针对本地管理员帐户显示。你能提供你用帮助实现的代码吗?因为我对C++很陌生。许多的Thanks@StehtimSchilf很抱歉,我不能提供示例代码,因为该项目的开发距离纯凭证提供程序太远,所以我担心如果我发布示例代码,会非常混乱。@StehtimSchilf我将在提供程序标题中给您一个提示,您是“CSampleCredential”类型的私人成员如果您使用microsoft示例。我把它改成:
std::vector _pCredentialVector;//SampleV2Credential
,因此您可以为每个显示的用户创建凭证。