KERB_CERTIFICATE_S4U_LOGON 结构 (ntsecapi.h)

KERB_CERTIFICATE_S4U_LOGON 结构包含有关用户 (S4U) 登录的服务证书的信息。

语法

typedef struct _KERB_CERTIFICATE_S4U_LOGON {
  KERB_LOGON_SUBMIT_TYPE MessageType;
  ULONG                  Flags;
  UNICODE_STRING         UserPrincipalName;
  UNICODE_STRING         DomainName;
  ULONG                  CertificateLength;
  PUCHAR                 Certificate;
} KERB_CERTIFICATE_S4U_LOGON, *PKERB_CERTIFICATE_S4U_LOGON;

成员

MessageType

标识所发出的登录请求类型的 KERB_LOGON_SUBMIT_TYPE 枚举的值。 此成员必须设置为 KerbCertificateS4ULogon

Flags

提供有关证书登录的详细信息的标志。

含义
KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_DUPLICATES
0x1
密钥分发中心 (KDC) 检查同一证书的帐户映射冲突。
KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_LOGONHOURS
0x2
KDC 检查使用此证书的帐户登录的时间长度。
KERB_CERTIFICATE_S4U_LOGON_FLAG_IF_NT_AUTH_POLICY_REQUIRED
0x4
KDC 检查是否已设置身份验证策略。
KERB_CERTIFICATE_S4U_LOGON_FLAG_IDENTIFY
0x8
KDC 仅检查标识令牌,而不是模拟令牌。 对标识令牌的请求必须与 KERB_S4U_LOGON 结构中的KERB_S4U_LOGON_FLAG_IDENTIFY 标志具有相同的值。

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

UserPrincipalName

要进行身份验证的客户端的用户主体名称。 此成员的值可以为 NULL。 如果值不为 NULL则 LsaLogonUser 函数使用 值来查找用户名。

DomainName

要进行身份验证的用户的域名。 此成员的值可以为 NULL。 如果值不为 NULL则 LsaLogonUser 函数使用 值来查找 KDC。 如果值为 NULL则 LsaLogonUser 函数将尝试针对计算机加入到的域进行身份验证。

CertificateLength

客户端证书的长度(以字节为单位)。

Certificate

S4U 登录的证书。

要求

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