estructura de CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION (credentialprovider.h)

Contiene detalles sobre una credencial.

Sintaxis

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

Miembros

ulAuthenticationPackage

Tipo: ULONG

Identificador único del paquete de autenticación. Este parámetro es necesario al llamar a LsaLogonUser. En un escenario de la interfaz de usuario de credenciales, este valor se establece antes de que se envíe una serialización a través de SetSerialization. Esto es lo mismo que el valor del paquete de autenticación devuelto por LsaLookupAuthenticationPackage. Los proveedores de contenido pueden usar este parámetro para determinar si pueden devolver credenciales para este paquete de autenticación. Los desarrolladores que escriben su propio paquete de autenticación pueden proporcionar su propio valor.

clsidCredentialProvider

Tipo: GUID

CLSID del proveedor de credenciales. Los proveedores de credenciales asignan su propio CLSID a este miembro durante la serialización. La interfaz de usuario de credenciales omite este miembro.

cbSerialization

Tipo: ULONG

Tamaño, en bytes, de la credencial a la que apunta rgbSerialization.

rgbSerialization

Tipo: byte*

Matriz de bytes que contiene información de credenciales serializada. El formato exacto de estos datos depende del paquete de autenticación de destino de un proveedor de credenciales.

Comentarios

Una vez que el usuario ha escrito información de credenciales en un icono de credenciales, debe colocarse en un búfer. El empaquetado de esta información se denomina serialización y es necesario independientemente de si el escenario usa una interfaz de usuario de inicio de sesión o una interfaz de usuario de credenciales. El CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION define la estructura para la serialización. Después de la serialización, donde se envía el búfer depende de si se trata de un escenario de interfaz de usuario de inicio de sesión o de interfaz de usuario de credenciales. Con una interfaz de usuario de inicio de sesión, el búfer se pasa a Winlogon. En el escenario de la interfaz de usuario de credenciales, este búfer se devuelve a la aplicación que realiza la llamada que, a continuación, la usa para autenticar al usuario.

Importante  

Incluso si va a implementar una CREDENTIAL_PROVIDER_USAGE_SCENARIO de CPUS_LOGON, no llama directamente a LsaLogonUser. El sistema controla esa llamada. Solo tienes que pasar tus credenciales a Winlogon.

 
Los proveedores de credenciales también pueden enumerar un icono de credenciales si se recibe una credencial de entrada de SetSerialization. Un ejemplo en el que esto resulta útil es si un usuario proporciona una combinación de contraseña de usuario no válida. La interfaz de usuario de credenciales volverá a pasar las credenciales al proveedor de credenciales, ya que no son válidas. El proveedor de credenciales puede optar por mostrar un icono al usuario que ya tiene el nombre de usuario rellenado.

Las credenciales de entrada pueden tener muchas formas diferentes. Es importante que los proveedores de credenciales sean sólidos al recibir credenciales serializadas. Esto podría incluir credenciales incompletas o parciales. En muchos casos, una credencial de entrada incompleta es una sugerencia sobre qué tipo de credencial quiere el autor de la llamada. Un caso en el que se usa este proceso es con autores de llamadas que solo desean recopilar credenciales de tarjeta inteligente del usuario. Durante el escenario de uso de CPUS_LOGON , el sistema usa SetSerialization para rellenar parte de la información de un equipo remoto. La interfaz de usuario de inicio de sesión llamará a SetSerialization cero o una vez cada ciclo de enumeración.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado credentialprovider.h