2

我正在开发一个应用程序,我必须在其中使用智能卡证书验证用户。其中一个证书映射到多个 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,以便它可以正确验证用户?

谢谢,

4

0 回答 0