我正在开发一个应用程序,我将使用智能卡证书验证用户。将一个证书映射到多个ID。
Windows(凭据提供程序)使用“提示”属性和“引脚”在此类环境中登录用户。
我想用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凭据提供程序如何使用“提示”属性验证用户?
如何将“Hint”属性传递给LsaLogonUser api,以便正确验证用户?
谢谢,