CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION 结构 (credentialprovider.h)

包含有关凭据的详细信息。

语法

typedef struct _CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION {
  ULONG ulAuthenticationPackage;
  GUID  clsidCredentialProvider;
  ULONG cbSerialization;
  byte  *rgbSerialization;
} CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION;

成员

ulAuthenticationPackage

类型: ULONG

身份验证包的唯一标识符。 调用 LsaLogonUser 时,此参数是必需的。 在凭据 UI 方案中,此值在通过 SetSerialization 发送序列化之前设置。 这与 LsaLookupAuthenticationPackage 返回的身份验证包值相同。 内容提供程序可以使用此参数来确定他们是否能够返回此身份验证包的凭据。 编写自己的身份验证包的开发人员可以提供自己的值。

clsidCredentialProvider

类型: GUID

凭据提供程序的 CLSID。 凭据提供程序在序列化期间将自己的 CLSID 分配给此成员。 凭据 UI 会忽略此成员。

cbSerialization

类型: ULONG

rgbSerialization 指向的凭据的大小(以字节为单位)。

rgbSerialization

类型: 字节*

包含序列化凭据信息的字节数组。 此数据的确切格式取决于凭据提供程序面向的身份验证包。

注解

用户将凭据信息输入凭据磁贴后,需要将其放入缓冲区。 打包此信息称为序列化,无论方案是使用登录 UI 还是凭据 UI,都是必需的。 CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION定义序列化的结构。 序列化后,缓冲区的发送位置取决于它是登录 UI 还是凭据 UI 方案。 使用登录 UI 时,缓冲区将传递到 Winlogon。 在凭据 UI 方案中,此缓冲区将返回到调用应用程序,然后调用应用程序使用该缓冲区对用户进行身份验证。

重要说明  

即使实现CPUS_LOGON CREDENTIAL_PROVIDER_USAGE_SCENARIO,也不会直接调用 LsaLogonUser。 该调用由系统处理。 只需将凭据传递给 Winlogon 即可。

 
如果从 SetSerialization 收到输入凭据,则凭据提供程序还可以枚举凭据磁贴。 如果用户提供无效的用户密码组合,则其中一个示例很有用。 凭据 UI 会将凭据传递回凭据提供程序,因为它们无效。 凭据提供程序可以选择向已填充用户名的用户显示磁贴。

输入凭据可以采用许多不同的形式。 接收序列化凭据时,凭据提供程序必须可靠。 这可能包括不完整或部分凭据。 在许多情况下,不完整的输入凭据是调用方需要哪种类型的凭据的提示。 使用此过程的一种情况是,只希望从用户那里收集智能卡凭据的调用方。 在 CPUS_LOGON 使用方案中,系统使用 SetSerialization 从远程计算机填充某些信息。 登录 UI 将在每个枚举周期调用 SetSerialization 0 次或 1 次。

要求

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