QueryContextAttributes(常规)函数

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

有关将此函数与特定安全支持提供程序 (SSP) 配合使用的信息,请参阅以下主题。

主题 说明
QueryContextAttributes (CredSSP) 使传输应用程序能够向凭据安全支持提供程序 (CredSSP) 查询某个安全上下文的某些属性。
QueryContextAttributes (Digest) 使传输应用程序能够向 Digest 安全包查询某个安全上下文的某些属性。
QueryContextAttributes (Kerberos) 使传输应用程序能够向 Kerberos 安全包查询某个安全上下文的某些属性
QueryContextAttributes (Negotiate) 使传输应用程序能够向 Negotiate 安全包查询某个安全上下文的某些属性。
QueryContextAttributes (NTLM) 使传输应用程序能够向 NTLM 安全包查询某个安全上下文的某些属性。
QueryContextAttributes (Schannel) 使传输应用程序能够向 Schannel 安全包查询某个安全上下文的某些属性。

语法

SECURITY_STATUS SEC_ENTRY QueryContextAttributes(
  _In_  PCtxtHandle phContext,
  _In_  ULONG       ulAttribute,
  _Out_ PVOID       pBuffer
);

参数

phContext [in]

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

ulAttribute [in]

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

含义
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:不支持此值。

 

pBuffer [out]

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

返回值

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

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

注解

pBuffer 参数指向的结构取决于所查询的属性。 须由调用方分配 pBuffer 结构本身,而由 SSP 分配用于保存 pBuffer 结构可变大小成员的任何所需内存。 可以通过调用 FreeContextBuffer 函数释放 SSP 分配的内存。

读取 SECPKG_ATTR_REMOTE_CERT_CONTEXT 或 SECPKG_ATTR_LOCAL_CERT_CONTEXT 值后,会将 hCertStore 成员设置为包含中间证书的证书存储的句柄(如果有)。 此外,应用程序负责调用 CertFreeCertificateContext 以释放证书上下文使用的内存。

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
Header
Sspi.h(包括 Security.h)
Library
Secur32.lib
DLL
Secur32.dll
Unicode 和 ANSI 名称
QueryContextAttributesW (Unicode) 和 QueryContextAttributesA (ANSI)

另请参阅

SSPI 函数

支持服务中针对验证的扩展保护 (EPA)

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes