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_LOGON、 CPUS_UNLOCK_WORKSTATION | 凭据信息应打包到二进制流中,并传输到 Winlogon 并最终传输到 LSA。 |
凭据提供程序最佳做法
凭据提供程序处理极其敏感的用户机密,以便完成登录和解锁请求。 最佳做法是,密码和 PIN 等机密信息应谨慎处理。 用于在凭据提供程序中处理机密信息的适当技术包括:- 始终安全地放弃机密。 为此,请在释放用于保存任何机密的内存之前调用 SecureZeroMemory 。
- 使用机密后,请立即安全丢弃机密。
- 如果机密未在预期时间内用于预期目的,请安全地丢弃机密。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | credentialprovider.h |