ICredentialProviderCredential::GetSerialization 方法 (credentialprovider.h)

调用以响应尝试将此凭据提交到基础身份验证引擎。

语法

HRESULT GetSerialization(
  [out] CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE *pcpgsr,
  [out] CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION   *pcpcs,
  [out] LPWSTR                                         *ppszOptionalStatusText,
  [out] CREDENTIAL_PROVIDER_STATUS_ICON                *pcpsiOptionalStatusIcon
);

参数

[out] pcpgsr

类型: CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE*

指示尝试序列化凭据是成功还是失败。

[out] pcpcs

类型: CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION*

指向凭据的指针。 根据结果,可能没有有效的凭据。

[out] ppszOptionalStatusText

类型: LPWSTR*

指向序列化后登录 UI 将显示的 Unicode 字符串值的指针。 可以为 NULL

[out] pcpsiOptionalStatusIcon

类型: CREDENTIAL_PROVIDER_STATUS_ICON*

指向一个图标的指针,该图标将在对 GetSerialization 的调用返回后由凭据显示。 此值可以为 NULL

返回值

类型: HRESULT

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

备注

此方法是必需的。

CREDENTIAL_PROVIDER_USAGE_SCENARIO指示当用户尝试提交凭据时,相应的响应是什么。 下表指示了如何根据使用方案做出响应。

CPUS_CHANGE_PASSWORD 此方案中不会发生凭据序列化。 在这种情况下,凭据提供程序应更新用户的私人信息,并将 CPGSR_NO_CREDENTIAL_FINISHED 作为 pcpgsr 返回。
CPUS_CREDUI 凭据信息应序列化并传递到调用应用程序。
CPUS_LOGONCPUS_UNLOCK_WORKSTATION 凭据信息应打包到二进制流中,并传输到 Winlogon 并最终传输到 LSA。
 

凭据提供程序最佳做法

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

要求

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