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 [仅限桌面应用]
目标平台 Windows
标头 sspi.h (包括 Security.h)
Library 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