2

我正在开发自定义 Windows 登录,以便用户可以使用网络摄像头(面部识别)或用户名和密码。我可以在登录屏幕上显示一个包含所有必需控件的窗口,但我不明白如何使用提供的用户名和密码进行身份验证。为此,Window 使用GetSerialize()函数。

GetSerialization(
__out CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE* pcpgsr,
__out CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION* pcpcs, 
__deref_out_opt PWSTR* ppwszOptionalStatusText, 
__in CREDENTIAL_PROVIDER_STATUS_ICON* pcpsiOptionalStatusIcon
)

以上是函数签名。如您所见,系统使用CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE*CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION*指针获取有关用户名和密码的信息。我如何调用它进行身份验证。或者在登录时有没有其他方法可以做到这一点。

4

1 回答 1

3

我想知道你现在是否已经解决了这个问题?

不调用GetSerialization(),这是由 Windows 调用的(例如由 WinLogon 执行交互式登录)。您只需填写序列化响应和序列化凭证。如果您回传一个响应,说明您已成功从用户那里收集了凭据,则序列化数据将传递给本地安全机构进行检查。

如果您真的想将凭证放入您自己的应用程序中,您可以使用CredUIPromptForWindowsCredentials.

于 2012-09-28T15:31:04.617 回答