Поделиться через


структура 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. В сценарии пользовательского интерфейса учетных данных это значение устанавливается перед отправкой сериализации с помощью SetSerialization. Это то же значение, что и значение пакета проверки подлинности, возвращаемое LsaLookupAuthenticationPackage. Поставщики содержимого могут использовать этот параметр, чтобы определить, могут ли они возвращать учетные данные для этого пакета проверки подлинности. Разработчики, которые пишут собственный пакет проверки подлинности, могут предоставлять свои собственные значения.

clsidCredentialProvider

Тип: GUID

CLSID поставщика учетных данных. Поставщики учетных данных назначают этому члену собственный идентификатор CLSID во время сериализации. Пользовательский интерфейс учетных данных игнорирует этот элемент.

cbSerialization

Тип: ULONG

Размер (в байтах) учетных данных, на которые указывает rgbSerialization.

rgbSerialization

Тип: байт*

Массив байтов, содержащий сериализованные учетные данные. Точный формат этих данных зависит от пакета проверки подлинности, предназначенного поставщиком учетных данных.

Комментарии

Когда пользователь введет учетные данные на плитку учетных данных, ее необходимо поместить в буфер. Упаковка этих сведений называется сериализацией и необходима независимо от того, использует ли сценарий пользовательский интерфейс входа или пользовательский интерфейс учетных данных. CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION определяет структуру сериализации. Место отправки буфера после сериализации зависит от того, является ли он пользовательским интерфейсом входа или пользовательским интерфейсом учетных данных. При использовании пользовательского интерфейса входа буфер передается в Winlogon. В сценарии пользовательского интерфейса учетных данных этот буфер возвращается вызывающему приложению, которое затем использует его для проверки подлинности пользователя.

Важно  

Даже если вы реализуете CREDENTIAL_PROVIDER_USAGE_SCENARIOCPUS_LOGON, вы не вызываете LsaLogonUser напрямую. Этот вызов обрабатывается системой. Необходимо просто передать учетные данные в Winlogon.

 
Поставщики учетных данных также могут перечислить плитку учетных данных, если входные учетные данные получены из SetSerialization. Один из примеров, когда это полезно, — если пользователь предоставляет недопустимое сочетание пользователя и пароля. Пользовательский интерфейс учетных данных передаст учетные данные обратно поставщику учетных данных, так как они недопустимы. Поставщик учетных данных может отобразить плитку для пользователя, имя которого уже заполнено.

Входные учетные данные могут принимать различные формы. Важно, чтобы поставщики учетных данных были надежными при получении сериализованных учетных данных. Это может включать неполные или частичные учетные данные. Во многих случаях неполные входные учетные данные — это подсказка о том, какой тип учетных данных требуется вызывающему объекту. Один из случаев, когда этот процесс используется с вызывающими абонентами, которые хотят получить только смарт-карта учетные данные от пользователя. Во время сценария использования CPUS_LOGON система использует SetSerialization для заполнения некоторых сведений с удаленного компьютера. Пользовательский интерфейс входа будет вызывать SetSerialization ноль или один раз каждый цикл перечисления.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Верхняя часть credentialprovider.h