我正在开发一个应用程序,我必须在其中使用智能卡证书验证用户。其中一个证书映射到多个 ID。
Windows(凭据提供程序)使用“Hint”属性和“Pin”在此类环境中登录用户。
我想用 LsalogonUser api 达到同样的效果。问题是结构“KERB_CERTIFICATE_LOGON”中没有“提示”字段。
typedef struct _KERB_CERTIFICATE_LOGON {
KERB_LOGON_SUBMIT_TYPE MessageType;
UNICODE_STRING DomainName;
UNICODE_STRING UserName;
UNICODE_STRING Pin;
ULONG Flags;
ULONG CspDataLength;
PUCHAR CspData;
} KERB_CERTIFICATE_LOGON, *PKERB_CERTIFICATE_LOGON;
我有一个证书映射到一个 id 的场景的工作代码。
来源:https ://www.idrix.fr/Root/Samples/LsaSmartCardLogon.cpp
我的问题是 Microsoft Windows 凭据提供程序如何使用“提示”属性验证用户?
我该怎么做才能将“提示”属性传递给 LsaLogonUser api,以便它可以正确验证用户?
谢谢,