我正在开发自定义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*
指针来获取有关用户名和密码的信息。我如何调用它进行身份验证。或者在登录时是否有其他方法可以做到这一点。
答案 0 :(得分:3)
我想知道你现在是否已经解决了这个问题?
你不要调用GetSerialization()
,这是由Windows调用的(例如,通过WinLogon执行交互式登录)。您只需填写序列化响应和序列化凭据即可。如果您传回一条回复,表示您已成功从用户收集凭证,则序列化数据将传递到本地安全机构进行检查。
如果您确实希望将凭据放入自己的应用程序中,可以使用CredUIPromptForWindowsCredentials
进行。