QueryCredentialsAttributesA 函数 (sspi.h)

检索凭据的属性,例如与凭据关联的名称。 此信息对于使用指定凭据创建的任何 安全上下文 都有效。

语法

SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(
  [in]  PCredHandle   phCredential,
  [in]  unsigned long ulAttribute,
  [out] void          *pBuffer
);

参数

[in] phCredential

要查询的凭据的句柄。

[in] ulAttribute

指定要查询 的属性 。 此参数可以是以下任一属性。

含义
SECPKG_CRED_ATTR_CERT
返回类型为 SecPkgCredentials_Certpbuffer 中的证书指纹。

仅 Kerberos 支持此属性。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 此属性不可用。

SECPKG_CRED_ATTR_NAMES
返回 SecPkgCredentials_Names 类型的 pbuffer 中的凭据的名称。

Schannel 在 WOW64 模式下不支持此属性。

SECPKG_ATTR_SUPPORTED_ALGS
返回 SecPkgCred_SupportedAlgs 类型的 pbuffer 中支持的算法。 包括所有支持的算法,无论这些算法是受提供的证书支持还是在本地计算机上启用。

仅 Schannel 支持此属性。

SECPKG_ATTR_CIPHER_STRENGTHS
返回 SecPkgCred_CipherStrengths 类型的 pbuffer 中的密码强度。

仅 Schannel 支持此属性。

SECPKG_ATTR_SUPPORTED_PROTOCOLS
返回 SecPkgCred_SupportedProtocols 类型的 pbuffer 中支持的算法。 包括所有支持的协议,无论这些协议是受提供的证书支持还是在本地计算机上启用。

仅 Schannel 支持此属性。

[out] pBuffer

指向接收所请求属性的缓冲区的指针。 返回的结构类型取决于 ulAttribute 的值。

返回值

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

如果函数失败,则返回值可能是以下错误代码之一。

返回代码 说明
SEC_E_INVALID_HANDLE
传递给函数的句柄无效。
SEC_E_UNSUPPORTED_FUNCTION
Schannel 不支持指定的 属性 。 仅当使用 Schannel SSP 时,才会返回此返回值。
SEC_E_INSUFFICIENT_MEMORY
可用内存不足以完成请求。

注解

QueryCredentialsAttributes 函数允许应用程序确定凭据的多个特征,包括与指定凭据关联的名称。

查询SECPKG_ATTR_CIPHER_STRENGTHS属性将返回 SecPkgCred_CipherStrengths 结构。 此结构中的密码强度与创建凭据时使用的 SCH_CREDENTIALS 结构中的密码强度相同。

注意 应用程序可以通过使用默认凭据查询此属性来查找系统默认密码强度。 默认凭据是通过使用 NULLpAuthData 参数调用 AcquireCredentialsHandle 创建的。
 
查询SECPKG_ATTR_SUPPORTED_ALGS属性将返回 SecPkgCred_SupportedAlgs 结构。 此结构中的算法与创建凭据时使用的 SCH_CREDENTIALS 结构中指示的算法兼容。

查询SECPKG_ATTR_SUPPORTED_PROTOCOLS属性将返回一个SecPkgCred_SupportedProtocols结构,该结构包含与 SCH_CREDENTIALS 结构的 grbitEnabledProtocols 字段兼容的位数组。

调用方必须分配 pBuffer 参数指向的结构。 安全包pBuffer 结构中返回的任何指针分配缓冲区。 调用方可以调用 FreeContextBuffer 函数,以释放安全包分配的任何指针。

注意

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

要求

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

另请参阅

AcquireCredentialsHandle

FreeContextBuffer

SCH_CREDENTIALS

SSPI 函数

SecPkgCred_CipherStrengths

SecPkgCred_SupportedAlgs

SecPkgCred_SupportedProtocols

SecPkgCredentials_Names