Compartir a través de


Función CredWriteDomainCredentialsA (wincred.h)

La función CredWriteDomainCredentials escribe las credenciales de dominio en el conjunto de credenciales del usuario. El conjunto de credenciales usado es el asociado a la sesión de inicio de sesión del token actual. El token no debe tener deshabilitado el SID del usuario.

Sintaxis

BOOL CredWriteDomainCredentialsA(
  [in] PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in] PCREDENTIALA                    Credential,
  [in] DWORD                           Flags
);

Parámetros

[in] TargetInfo

Identifica el servidor de destino. Al menos uno de los miembros de nomenclatura debe ser noNULL y puede ser NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainNameo DnsTreeName.

[in] Credential

Credencial que se va a escribir.

La credencial debe ser una que coincida con TargetInfo Por ejemplo, si el targetName de es un nombre DNS comodín, el TargetName miembro de la credencial debe ser un postfijo del miembro DnsServerName del TargetInfo.

[in] Flags

Marcas para controlar la operación de la API. Se define la marca siguiente.

Valor Significado
CRED_PRESERVE_CREDENTIAL_BLOB
El BLOB de credenciales debe conservarse de la credencial ya existente con el mismo nombre de credencial y tipo de credencial. El CredentialBlobSize de la estructura de credenciales pasadas debe ser cero.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve TRUE.

Si se produce un error en la función, devuelve FALSE. Llame a la función GetLastError para obtener un código de estado más específico. Se pueden devolver los siguientes códigos de estado.

Se pueden devolver otros errores de tarjeta inteligente al escribir una credencial de CRED_TYPE_CERTIFICATE.

Código devuelto Descripción
ERROR_INVALID_PARAMETER
Uno o varios de los parámetros no son válidos. No se especificó ninguno de los parámetros de nomenclatura o la credencial especificada no tenía el miembro type establecido en CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, o el Credential no coincide con el TargetInfo.
ERROR_NO_SUCH_LOGON_SESSION
La sesión de inicio de sesión no existe o no hay ningún conjunto de credenciales asociado a esta sesión de inicio de sesión. Las sesiones de inicio de sesión de red no tienen un conjunto de credenciales asociado.
ERROR_INVALID_FLAGS
Se especificó un valor que no es válido para el parámetro Flags.
ERROR_BAD_USERNAME
El miembro UserName del estructura credential no es válido. Para obtener una descripción de las sintaxis válidas, vea la definición de ese miembro.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB se especificó y no hay ninguna credencial existente por el mismo TargetName y Type.
SCARD_E_NO_READERS_AVAILABLE
La CRED_TYPE_CERTIFICATE credencial que se escribe requiere que el lector de tarjetas inteligentes esté disponible.
SCARD_E_NO_SMARTCARD o SCARD_W_REMOVED_CARD: el CRED_TYPE_CERTIFICATE
La credencial que se escribe requiere que se inserte la tarjeta inteligente.
SCARD_W_WRONG_CHV
El PIN incorrecto se proporcionó para la CRED_TYPE_CERTIFICATE credencial que se está escribiendo.

Observaciones

Cuando esta función escribe una credencial de CRED_TYPE_CERTIFICATE, elde credenciales de -credentialBlob miembro especifica el PIN que protege la clave privada del certificado especificado por elcredencial de -UserName. El administrador de credenciales no mantiene el PIN. En su lugar, el PIN se pasa al CSP del certificado para su uso posterior por los paquetes de autenticación y CSP. El CSP define la duración del PIN. Por ejemplo, la mayoría de los CSP vacían el PIN tras la eliminación de tarjetas inteligentes.

credWriteDomainCredentials difiere de credWrite en que controla las credenciales de dominio (CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE). Las credenciales de dominio contienen más de un miembro de destino.

Si el valor del miembro Type del CREDENTIAL estructura especificada por el parámetro Credential es CRED_TYPE_DOMAIN_EXTENDED, se debe especificar un espacio de nombres en el nombre de destino.

Nota

El encabezado wincred.h define CredWriteDomainCredentials 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]
de la plataforma de destino de Windows
encabezado de wincred.h
biblioteca de Advapi32.lib
DLL de Advapi32.dll