QueryContextAttributes (常规) 函数

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

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

主题 说明
QueryContextAttributes (CredSSP) 使传输应用程序能够查询凭据安全支持提供程序(CredSSP)以获取 安全上下文的某些属性。
QueryContextAttributes (摘要) 使传输应用程序能够查询摘要式安全包中 某个安全上下文的某些属性。
QueryContextAttributes (Kerberos) 使传输应用程序能够查询 Kerberos 安全包中某个 安全上下文的某些属性。
QueryContextAttributes (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 [仅限桌面应用]
标题
Sspi.h(包括 Security.h)
图书馆
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