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 bit que identifica las características de la credencial. Los bits no definidos deben inicializarse como cero y no modificarse para permitir una mejora futura.
Valor | Significado |
---|---|
|
Se establece bit si la credencial no conserva CredentialBlob 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, CredentialBlob no se conserva en 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 al certificado. Si Type es CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, siempre se produce un error en un intento 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. |
|
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 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 valores siguientes son válidos.
TargetName
Nombre de la credencial. Los miembros 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 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 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 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 un asterisco (*), lo que indica que el nombre de destino es cualquier servidor que sea miembro del dominio con nombre (o dominio kerberos).
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 está CRED_SESSION_WILDCARD_NAME, esta credencial coincide con cualquier nombre de servidor. Esta credencial coincide antes de un solo asterisco y solo es válida si Persist 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 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é precedido 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) caracteres.
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. Los miembros CredentialBlob y CredentialBlobSize no incluyen un carácter cero final. Además, para CRED_TYPE_DOMAIN_PASSWORD, este miembro solo puede ser leído por los paquetes de autenticación.
Si el miembro Type está CRED_TYPE_DOMAIN_CERTIFICATE, este miembro contiene el PIN Unicode de prueba sin cifrar para UserName. Los miembros CredentialBlob y 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.
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 para el miembro TargetName . Este miembro se puede leer y escribir. No puede tener más de CRED_MAX_STRING_LENGTH (256) caracteres.
Si el tipo de credencial es CRED_TYPE_GENERIC, este miembro puede ser distinto de NULL, pero el administrador de credenciales omite el miembro.
UserName
Nombre de usuario de la cuenta usada para conectarse a TargetName.
Si el tipo de credencial es CRED_TYPE_DOMAIN_PASSWORD, este miembro puede ser un nombre de dominio UserName o un UPN.
Si el tipo de credencial es CRED_TYPE_DOMAIN_CERTIFICATE, este miembro debe ser una referencia de certificado serializado creada llamando a CredMarshalCredential con un CertCredential .
Si el tipo de credencial es CRED_TYPE_GENERIC, este miembro puede ser distinto de NULL, pero el administrador de credenciales omite el miembro.
Este miembro no puede tener más de CRED_MAX_USERNAME_LENGTH (513) caracteres.
Comentarios
Nota
El encabezado wincred.h define CREDENTIAL como un 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | wincred.h |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de