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 即可。
输入凭据可以采用许多不同的形式。 接收序列化凭据时,凭据提供程序必须可靠。 这可能包括不完整或部分凭据。 在许多情况下,不完整的输入凭据是调用方需要哪种类型的凭据的提示。 使用此过程的一种情况是,只希望从用户那里收集智能卡凭据的调用方。 在 CPUS_LOGON 使用方案中,系统使用 SetSerialization 从远程计算机填充某些信息。 登录 UI 将在每个枚举周期调用 SetSerialization 0 次或 1 次。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | credentialprovider.h |