KERB_CERTIFICATE_LOGON 结构 (ntsecapi.h)

KERB_CERTIFICATE_LOGON 结构包含有关智能卡登录会话的信息。

Kerberos 安全包执行交互式智能卡登录时,它将作为 AuthenticationInformation 参数传递给 LsaLogonUser 函数。

语法

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;

成员

MessageType

指示如何使用此结构的 KERB_LOGON_SUBMIT_TYPE 枚举的成员。 成员必须是以下值之一。

含义
KerbCertificateLogon
13
此结构作为 AuthenticationInformation 参数传递给 LsaLogonUser 函数,以执行交互式智能卡登录。
KerbCertificateUnlockLogon
15
此结构用作 KERB_CERTIFICATE_UNLOCK_LOGON 结构的登录成员。

DomainName

要进行身份验证的用户的域名。 此成员的值可以为空。 如果值不为空, 则 LsaLogonUser 使用值查找 密钥分发中心 (KDC) 。 如果值为空, 则 LsaLogonUser 会尝试对计算机加入到的域进行身份验证。 指针相对于结构的开头,不是绝对内存指针。

UserName

要进行身份验证的用户的用户名。 此成员的值可以为空。 如果值不为空, 则 LsaLogonUser 使用 值来查找要进行身份验证的用户帐户。 指针相对于结构的开头,不是绝对内存指针。

Pin

用于对用户进行身份验证的 PIN。 此结构的 Length 成员不包括 PIN 的终止 null 字符。 指针相对于结构的开头,不是绝对内存指针。

可以使用 CredProtect 函数保护 PIN。

Flags

控制身份验证行为的可选标志。 定义了以下值。

含义
KERB_CERTIFICATE_LOGON_FLAG_CHECK_DUPLICATES
0x1
KDC 检查证书中是否存在多个帐户映射。
KERB_CERTIFICATE_LOGON_FLAG_USE_CERTIFICATE_INFO
0x2
KDC 使用证书信息进行身份验证。

Windows Server 2008 R2、Windows 7、Windows Server 2008 和 Windows Vista: 此标志不可用。

CspDataLength

CspData 成员的长度(以字符为单位)。

CspData

指向KERB_SMARTCARD_CSP_INFO结构的指针,其中包含有关云解决方案提供商 (CSP) ) 的智能卡加密服务提供程序的信息,或指向更新证书凭据时封送KERB_CERTIFICATE_INFO结构的指针。

注解

此结构以及 DomainNameUserNamePinCspData 成员指向的数据包含在单个连续内存块中。 序列化此结构时,每个成员指定的偏移量必须是 2 的倍数。

存储在 UNICODE_STRING 类型的成员中的指针相对于结构的开头,不是绝对内存指针。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 ntsecapi.h

另请参阅

KERB_CERTIFICATE_UNLOCK_LOGON

KERB_SMARTCARD_CSP_INFO

LsaLogonUser