QueryContextAttributesExW 函数 (sspi.h)

使传输应用程序能够查询安全 上下文的某些 属性 安全包。

语法

SECURITY_STATUS SEC_ENTRY QueryContextAttributesExW(
  [in]  PCtxtHandle   phContext,
  [in]  unsigned long ulAttribute,
  [out] void          *pBuffer,
  [in]  unsigned long cbBuffer
);

参数

[in] phContext

要查询的安全上下文的句柄。

[in] ulAttribute

指定要返回的上下文的属性。 此参数可以是下列值之一。

价值 意义
SECPKG_ATTR_ACCESS_TOKEN
18
pBuffer 参数包含指向 SecPkgContext_AccessToken 结构的指针。

返回访问令牌的句柄。

SECPKG_ATTR_APP_DATA
0x5e
pBuffer 参数包含指向 SecPkgContext_SessionAppData 结构的指针。

返回或指定会话的应用程序数据。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_AUTHORITY
6
pBuffer 参数包含指向 SecPkgContext_Authority 结构的指针。

查询身份验证机构的名称。

SECPKG_ATTR_CLIENT_SPECIFIED_TARGET
27
pBuffer 参数包含指向 SecPkgContext_ClientSpecifiedTarget 结构的指针,该结构表示客户端提供的初始目标的 服务主体名称(SPN)。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

SECPKG_ATTR_CONNECTION_INFO
0x5a
pBuffer 参数包含指向 SecPkgContext_ConnectionInfo 结构的指针。

返回有关已建立连接的详细信息。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_CREDS_2
0x80000086
pBuffer 参数包含指向指定客户端凭据的 SecPkgContext_ClientCreds 结构的指针。

如果客户端凭据是用户名和密码,则缓冲区是打包 KERB_INTERACTIVE_LOGON 结构。

如果客户端凭据是用户名和智能卡 PIN,则缓冲区是打包 KERB_CERTIFICATE_LOGON 结构。

如果客户端凭据是联机标识凭据,则缓冲区是封送 SEC_WINNT_AUTH_IDENTITY_EX2 结构。

此属性仅在 CredSSP 服务器上受支持。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值 此值。

SECPKG_ATTR_DCE_INFO
3
pBuffer 参数包含指向 SecPkgContext_DceInfo 结构的指针。

查询 DCE 服务使用的授权数据。

SECPKG_ATTR_ENDPOINT_BINDINGS
26
pBuffer 参数包含指向指定通道绑定信息的 SecPkgContext_Bindings 结构的指针。

此属性仅受 Schannel 安全包支持。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
pBuffer 参数包含指向 SecPkgContext_EapKeyBlock 结构的指针。

查询 EAP TLS 协议使用的关键数据。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_FLAGS
14
pBuffer 参数包含指向 SecPkgContext_Flags 结构的指针。

返回有关协商上下文标志的信息。

SECPKG_ATTR_ISSUER_LIST_EX
0x59
pBuffer 参数包含指向 SecPkgContext_IssuerListInfoEx 结构的指针。

返回服务器接受的证书颁发者列表。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_KEY_INFO
5
pBuffer 参数包含指向 SecPkgContext_KeyInfo 结构的指针。

查询有关安全上下文中使用的密钥的信息。

SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS
30
pBuffer 参数包含指向 SecPkgContext_LastClientTokenStatus 结构的指针,该结构指定从最近调用 InitializeSecurityContext 函数的令牌是否为客户端的最后一个令牌。

此值仅受 Negotiate、Kerberos 和 NTLM 安全包支持。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

SECPKG_ATTR_LIFESPAN
2
pBuffer 参数包含指向 SecPkgContext_Lifespan 结构的指针。

查询上下文的生命周期。

SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
pBuffer 参数包含指向 PCCERT_CONTEXT 结构的指针。

查找包含本地结束证书的证书上下文。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_LOCAL_CRED
pBuffer 参数包含指向 SecPkgContext_LocalCredentialInfo 结构的指针。 (已过时)

被SECPKG_ATTR_LOCAL_CERT_CONTEXT取代。

SECPKG_ATTR_NAMES
1
pBuffer 参数包含指向 SecPkgContext_Names 结构的指针。

查询与上下文关联的名称。

SECPKG_ATTR_NATIVE_NAMES
13
pBuffer 参数包含指向 SecPkgContext_NativeNames 结构的指针。

从出站票证返回主体名称(CNAME)。

SECPKG_ATTR_NEGOTIATION_INFO
12
pBuffer 参数包含指向 SecPkgContext_NegotiationInfo 结构的指针。

返回有关要与协商过程一起使用的安全包的信息,以及用于使用该包的谈判的当前状态。

SECPKG_ATTR_PACKAGE_INFO
10
pBuffer 参数包含指向 SecPkgContext_PackageInfo 结构的指针。

返回有关正在使用的 SSP 的信息。

SECPKG_ATTR_PASSWORD_EXPIRY
8
pBuffer 参数包含指向 SecPkgContext_PasswordExpiry 结构的指针。

返回密码过期信息。

SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
pBuffer 参数包含指向 PCCERT_CONTEXT 结构的指针。

查找包含服务器提供的结束证书的证书上下文。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_ROOT_STORE
0x55
pBuffer 参数包含指向 HCERTCONTEXT的指针。 查找包含根存储提供的证书的证书上下文。
SECPKG_ATTR_SESSION_KEY
9
pBuffer 参数包含指向 SecPkgContext_SessionKey 结构的指针。

返回有关会话密钥的信息。

SECPKG_ATTR_SESSION_INFO
0x5d
pBuffer 参数包含指向 SecPkgContext_SessionInfo 结构的指针。

返回有关会话的信息。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_SIZES
0
pBuffer 参数包含指向 SecPkgContext_Sizes 结构的指针。

查询每条消息函数中使用的结构的大小。

SECPKG_ATTR_STREAM_SIZES
4
pBuffer 参数包含指向 SecPkgContext_StreamSizes 结构的指针。

查询每个消息函数中使用的流的各个部分的大小。

此属性仅受 Schannel 安全包支持。

SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES
124
pBuffer 参数包含指向 SecPkgContext_SubjectAttributes 结构的指针。

此值返回有关连接的安全属性的信息。

此值仅在 CredSSP 服务器上受支持。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
pBuffer 参数包含指向 SecPkgContext_SupportedSignatures 结构的指针。

此值返回有关连接支持的签名类型的信息。

此值仅受 Schannel 安全包支持。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

SECPKG_ATTR_TARGET_INFORMATION
17
pBuffer 参数包含指向 SecPkgContext_TargetInformation 结构的指针。

返回有关远程服务器名称的信息。

SECPKG_ATTR_UNIQUE_BINDINGS
25
pBuffer 参数包含指向指定通道绑定信息的 SecPkgContext_Bindings 结构的指针。

此值仅受 Schannel 安全包支持。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

[out] pBuffer

指向接收属性的结构的指针。 指向的结构类型取决于 ulAttribute 参数中指定的值。

[in] cbBuffer

pBuffer 参数的大小(以字节为单位)。

返回值

如果函数成功,则返回值SEC_E_OK。

如果函数失败,则返回值为非零错误代码。

言论

注意

sspi.h 标头将 QueryContextAttributesEx 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 sspi.h (包括 Security.h)
Secur32.lib
DLL Secur32.dll

另请参阅

CERT_CONTEXT

FreeContextBuffer

SSPI 函数

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes