Compartir a través de


Estructura CREDENTIALA (wincred.h)

La estructura CREDENTIAL contiene una credencial individual.

Sintaxis

typedef struct _CREDENTIALA {
  DWORD                  Flags;
  DWORD                  Type;
  LPSTR                  TargetName;
  LPSTR                  Comment;
  FILETIME               LastWritten;
  DWORD                  CredentialBlobSize;
  LPBYTE                 CredentialBlob;
  DWORD                  Persist;
  DWORD                  AttributeCount;
  PCREDENTIAL_ATTRIBUTEA Attributes;
  LPSTR                  TargetAlias;
  LPSTR                  UserName;
} CREDENTIALA, *PCREDENTIALA;

Miembros

Flags

Miembro de bits que identifica las características de la credencial. Los bits no definidos deben inicializarse como cero y no modificarse para permitir futuras mejoras.

Valor Significado
CRED_FLAGS_PROMPT_NOW
2 (0x2)
Se establece bit si la credencial no conserva el credentialBlob de y la credencial no se ha escrito durante esta sesión de inicio de sesión. Este bit se omite en la entrada y se establece automáticamente cuando se consulta.

Si type es CRED_TYPE_DOMAIN_CERTIFICATE, el credentialBlob no se conserva en las sesiones de inicio de sesión porque el PIN de un certificado es información muy confidencial. De hecho, cuando la credencial se escribe en el administrador de credenciales, el PIN se pasa al CSP asociado al certificado. El CSP aplicará una directiva de retención de PIN adecuada para el certificado.

Si type es CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, siempre se produce un error en un paquete de autenticación al usar credenciales marcadas como CRED_FLAGS_PROMPT_NOW. La aplicación (normalmente a través de la interfaz de usuario del anillo de claves) solicita al usuario la contraseña. La aplicación guarda la credencial y vuelve a intentar la autenticación. Dado que la credencial se ha escrito recientemente, el paquete de autenticación ahora obtiene una credencial que no está marcada como CRED_FLAGS_PROMPT_NOW.

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
Bit se establece si esta credencial tiene un miembro TargetName establecido en el mismo valor que el miembro UserName. Esta credencial es una diseñada para almacenar el credentialBlob para un usuario específico. Para obtener más información, consulte la función CredMarshalCredential.

Este bit solo se puede especificar si type es CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE.

Type

Tipo de la credencial. Este miembro no se puede cambiar después de crear la credencial. Los siguientes valores son válidos.

Valor Significado
CRED_TYPE_GENERIC
1 (0x1)
La credencial es una credencial genérica. El paquete de autenticación concreto no usará la credencial. La credencial se almacenará de forma segura, pero no tiene otras características significativas.
CRED_TYPE_DOMAIN_PASSWORD
2 (0x2)
La credencial es una credencial de contraseña y es específica de los paquetes de autenticación de Microsoft. Los paquetes de autenticación NTLM, Kerberos y Negotiate usarán automáticamente esta credencial al conectarse al destino con nombre.
CRED_TYPE_DOMAIN_CERTIFICATE
3 (0x3)
La credencial es una credencial de certificado y es específica de los paquetes de autenticación de Microsoft. Los paquetes de autenticación Kerberos, Negotiate y Schannel usan automáticamente esta credencial al conectarse al destino con nombre.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4 (0x4)
Este valor ya no se admite.

Windows Server 2003 y Windows XP: La credencial es una credencial de contraseña y es específica de los paquetes de autenticación de Microsoft. El paquete de autenticación de Passport usará automáticamente esta credencial al conectarse al destino con nombre.

En el futuro se definirán valores adicionales. Las aplicaciones deben escribirse para permitir los tipos de credenciales que no entienden.

CRED_TYPE_GENERIC_CERTIFICATE
5 (0x5)
La credencial es una credencial de certificado que es un paquete de autenticación genérico.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.

CRED_TYPE_DOMAIN_EXTENDED
6 (0x6)
La credencial es compatible con paquetes de Negotiate extendidos.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.

CRED_TYPE_MAXIMUM
7 (0x7)
Número máximo de tipos de credenciales admitidos.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
El número máximo extendido de tipos de credenciales admitidos que ahora permiten que las nuevas aplicaciones se ejecuten en sistemas operativos más antiguos.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.

TargetName

Nombre de la credencial. Los miembros de TargetName y Type identifican de forma única la credencial. Este miembro no se puede cambiar después de crear la credencial. En su lugar, se debe eliminar la credencial con el nombre anterior y la credencial con el nuevo nombre creado.

Si type es CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, este miembro identifica el servidor o los servidores para los que se va a usar la credencial. El miembro es un nombre de servidor NetBIOS o DNS, un sufijo de nombre de host DNS que contiene un carácter comodín, un nombre de dominio NetBIOS o DNS que contiene una secuencia de caracteres comodín o un asterisco.

Si targetName es un nombre de host DNS, el miembro TargetAlias puede ser el nombre NetBIOS del host.

Si el TargetName es un sufijo de nombre de host DNS que contiene un carácter comodín, la etiqueta situada más a la izquierda del nombre de host DNS es un asterisco (*), que indica que el nombre de destino es cualquier servidor cuyo nombre termine en el nombre especificado, por ejemplo, *.microsoft.com.

Si el TargetName es un nombre de dominio que contiene una secuencia de caracteres comodín, la sintaxis es el nombre de dominio seguido de una barra diagonal inversa y asterisco (*), lo que indica que el nombre de destino es cualquier servidor que sea miembro del dominio con nombre (o dominio).

Si targetName es un nombre de dominio DNS que contiene una secuencia de caracteres comodín, el miembro TargetAlias puede ser un nombre de dominio NetBIOS que use una secuencia de caracteres comodín para el mismo dominio.

Si TargetName especifica un recurso compartido DFS, por ejemplo, DfsRoot\DfsShare, esta credencial coincide con el recurso compartido DFS específico y los servidores alcanzados a través de ese recurso compartido DFS.

Si targetName es un único asterisco (*), esta credencial coincide con cualquier nombre de servidor.

Si TargetName es CRED_SESSION_WILDCARD_NAME, esta credencial coincide con cualquier nombre de servidor. Esta credencial coincide con antes de un único asterisco y solo es válida si persistente es CRED_PERSIST_SESSION. Las aplicaciones que quieran invalidar temporalmente la credencial predeterminada pueden establecer la credencial.

Este miembro no puede tener más de CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) caracteres.

Si el tipo de es CRED_TYPE_GENERIC, este miembro debe identificar el servicio que usa la credencial además del destino real. Microsoft sugiere que el nombre esté prefijo por el nombre de la empresa que implementa el servicio. Microsoft usará el prefijo "Microsoft". Los servicios escritos por Microsoft deben anexar su nombre de servicio, por ejemplo, Microsoft_RAS_TargetName. Este miembro no puede tener más de CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767).

Este miembro no distingue mayúsculas de minúsculas.

Comment

Comentario de cadena del usuario que describe esta credencial. Este miembro no puede tener más de CRED_MAX_STRING_LENGTH (256) caracteres.

LastWritten

La hora, en hora universal coordinada (hora media de Greenwich), de la última modificación de la credencial. En el caso de las operaciones de escritura, se omite el valor de este miembro.

CredentialBlobSize

Tamaño, en bytes, del miembro CredentialBlob. Este miembro no puede ser mayor que CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) bytes.

CredentialBlob

Datos secretos de la credencial. El miembro CredentialBlob puede leerse y escribirse.

Si el miembro Type es CRED_TYPE_DOMAIN_PASSWORD, este miembro contiene la contraseña Unicode de texto no cifrado para UserName. El CredentialBlob y los miembros de CredentialBlobSize no incluyen un carácter cero final. Además, para CRED_TYPE_DOMAIN_PASSWORD, los paquetes de autenticación solo pueden leer este miembro.

Si el miembro type de es CRED_TYPE_DOMAIN_CERTIFICATE, este miembro contiene el PIN Unicode de prueba sin borrar para UserName. El CredentialBlob y los miembros de CredentialBlobSize no incluyen un carácter cero final. Además, los paquetes de autenticación solo pueden leer este miembro.

Si el miembro Type es CRED_TYPE_GENERIC, la aplicación define este miembro.

Se espera que las credenciales sean portátiles. Las aplicaciones deben asegurarse de que los datos de CredentialBlob sean portátiles. La aplicación define el byte-endian y la alineación de los datos en CredentialBlob.

Persist

Define la persistencia de esta credencial. Este miembro se puede leer y escribir.

Valor Significado
CRED_PERSIST_SESSION
1 (0x1)
La credencial persiste durante la vida de la sesión de inicio de sesión. No será visible para otras sesiones de inicio de sesión de este mismo usuario. No existirá después de que este usuario cierre la sesión y vuelva a activarse.
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
La credencial persiste para todas las sesiones de inicio de sesión posteriores en este mismo equipo. Es visible para otras sesiones de inicio de sesión de este mismo usuario en este mismo equipo y no es visible para las sesiones de inicio de sesión para este usuario en otros equipos.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter y Windows XP Home Edition: Este valor no se admite.

CRED_PERSIST_ENTERPRISE
3 (0x3)
La credencial persiste para todas las sesiones de inicio de sesión posteriores en este mismo equipo. Es visible para otras sesiones de inicio de sesión de este mismo usuario en este mismo equipo y para iniciar sesión para este usuario en otros equipos.

Esta opción se puede implementar como credencial persistente localmente si el administrador o el usuario configura la cuenta de usuario para que no tenga estado móvil. Por ejemplo, si el usuario no tiene ningún perfil móvil, la credencial solo se conservará localmente.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter y Windows XP Home Edition: Este valor no se admite.

AttributeCount

Número de atributos definidos por la aplicación que se van a asociar a la credencial. Este miembro se puede leer y escribir. Su valor no puede ser mayor que CRED_MAX_ATTRIBUTES (64).

Attributes

Atributos definidos por la aplicación asociados a la credencial. Este miembro se puede leer y escribir.

TargetAlias

Alias del miembro targetName de . Este miembro se puede leer y escribir. No puede tener más de CRED_MAX_STRING_LENGTH (256) caracteres.

Si la credencial type es CRED_TYPE_GENERIC, este miembro puede ser distinto deNULL, pero el administrador de credenciales omite el miembro.

UserName

Nombre de usuario de la cuenta usada para conectarse a TargetName.

Si la credencial Type es CRED_TYPE_DOMAIN_PASSWORD, este miembro puede ser un DomainNameUserName o un UPN.

Si la credencial Type es CRED_TYPE_DOMAIN_CERTIFICATE, este miembro debe ser una referencia de certificado serializado creada llamando a CredMarshalCredential con certCredential.

Si la credencial type es CRED_TYPE_GENERIC, este miembro puede ser distinto deNULL, pero el administrador de credenciales omite el miembro.

Este miembro no puede tener más de CRED_MAX_USERNAME_LENGTH (513) caracteres.

Observaciones

Nota

El encabezado wincred.h define CREDENTIAL como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
encabezado de wincred.h