ICredentialProvider::GetCredentialCount 方法 (credentialprovider.h)

获取此凭据提供程序下的可用凭据数。

语法

HRESULT GetCredentialCount(
  [out] DWORD *pdwCount,
  [out] DWORD *pdwDefault,
  [out] BOOL  *pbAutoLogonWithDefault
);

参数

[out] pdwCount

类型: DWORD*

指向接收凭据计数的 DWORD 值的指针。

[out] pdwDefault

类型: DWORD*

指向 DWORD 值的指针,该值接收要用作默认值的凭据的索引。 如果未设置默认值,则应将此值设置为 CREDENTIAL_PROVIDER_NO_DEFAULT

[out] pbAutoLogonWithDefault

类型: BOOL*

指向 BOOL 值的指针,该值指示是否应使用 pdwDefault 标识的默认凭据进行自动登录尝试。 自动登录尝试意味着登录 UI 或凭据 UI 将立即在提供程序的默认磁贴上调用 GetSerialization

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

此方法是必需的。

当登录 UI 或凭据 UI 可供用户交互时,默认选择默认凭据。 由于每个凭据提供程序都提供默认凭据,因此以下规则确定 pdwDefault 是否会接收焦点,或者是否会自动登录凭据。

  • 如果已指定默认凭据,则该凭据不用于自动登录,并且 pdwDefault 用于自动登录,则 pdwDefault 将用作默认凭据。
  • 如果 pdwDefault 来自上次登录的提供程序,并且还没有默认的自动登录,则 pdwDefault 将用作默认值。
  • 如果未指定默认值,则将使用 pdwDefault 作为默认值。
如果有效凭据的数量发生更改,凭据提供程序应在建议中提供的 ICredentialProviderEvents 实例上调用 CredentialsChanged

凭据提供程序最佳做法

凭据提供程序处理极其敏感的用户机密,以便完成登录和解锁请求。 最佳做法是,密码和 PIN 等机密信息应得到最谨慎的处理。 在凭据提供程序中处理机密信息的适当技术包括:
  • 始终安全地丢弃机密。 为此,请在释放用于保存任何机密的内存之前调用 SecureZeroMemory
  • 使用机密后立即安全地丢弃机密。
  • 如果机密未在预期时间内用于其预期用途,请安全地丢弃这些机密。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 credentialprovider.h