QueryContextAttributes (NTLM) 函数

QueryContextAttributes (NTLM) 函数允许传输应用程序查询 NTLM 安全包,以获取安全上下文的某些属性

语法

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_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_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_FLAGS
14
pBuffer 参数包含指向SecPkgContext_Flags结构的指针。
返回有关协商上下文标志的信息。
SECPKG_ATTR_KEY_INFO
5
pBuffer 参数包含指向SecPkgContext_KeyInfo结构的指针。
查询有关 安全上下文中使用的密钥的信息。
SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS
30
pBuffer 参数包含指向SecPkgContext_LastClientTokenStatus结构的指针,该结构指定从最近调用 InitializeSecurityContext 函数的令牌是否为客户端的最后一个令牌。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。
SECPKG_ATTR_LIFESPAN
2
pBuffer 参数包含指向SecPkgContext_Lifespan结构的指针。
查询上下文的生命周期。
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_ROOT_STORE
0x55
pBuffer 参数包含指向 HCERTCONTEXT 的指针。
查找包含根存储提供的证书的证书上下文。
SECPKG_ATTR_SESSION_KEY
9
pBuffer 参数包含指向SecPkgContext_SessionKey结构的指针。
返回有关 会话密钥的信息。
SECPKG_ATTR_SIZES
0
pBuffer 参数包含指向SecPkgContext_Sizes结构的指针。
查询每条消息函数中使用的结构的大小。
SECPKG_ATTR_TARGET_INFORMATION
17
pBuffer 参数包含指向SecPkgContext_TargetInformation结构的指针。
返回有关远程服务器名称的信息。

 

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 函数

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes