Función CredReadDomainCredentialsA (wincred.h)

La función CredReadDomainCredentials lee las credenciales de dominio del 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 CredReadDomainCredentialsA(
  [in]  PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALA                    **Credential
);

Parámetros

[in] TargetInfo

Información de destino que identifica el servidor de destino. Al menos uno de los miembros de nomenclatura no debe ser NULL: NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName o DnsTreeName.

[in] Flags

Marcas que controlan la operación de la función.

Se define la marca siguiente:

CRED_CACHE_TARGET_INFORMATION

Almacene en caché TargetInfo para una lectura posterior mediante CredGetTargetInfo.

[out] Count

Recuento de las credenciales devueltas en la matriz Credentials .

[out] Credential

Puntero a una matriz de punteros a credenciales. Se devuelve la credencial existente más específica que coincide con TargetInfo . Si existen credenciales de varios tipos (por ejemplo, CRED_TYPE_DOMAIN_PASSWORD y CRED_TYPE_DOMAIN_CERTIFICATE credenciales), se devuelve uno de cada tipo. Si se realizara una conexión al destino con nombre, se usaría esta credencial más específica.

Solo los tipos de credenciales especificados por TargetInfo. Se devuelve la matriz CredTypes. La matriz Credentials devuelta se ordena en el mismo orden que TargetInfo. Matriz CredTypes. Es decir, los paquetes de autenticación especifican un tipo de credencial preferido especificandolo anteriormente en TargetInfo. Matriz CredTypes. Si TargetInfo. CredTypeCount es cero, la matriz Credentials se devuelve en el siguiente orden ordenado:

  • CRED_TYPE_DOMAIN_CERTIFICATE
  • CRED_TYPE_DOMAIN_PASSWORD

El búfer devuelto es un único bloque asignado. Los punteros incluidos en el búfer son punteros a ubicaciones dentro de este único bloque asignado. El único búfer devuelto debe liberarse llamando a CredFree.

Valor devuelto

La función devuelve TRUE si se ejecuta correctamente y FALSE en caso de error. Se puede llamar 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:

  • ERROR_INVALID_PARAMETER

    No se especificó ninguno de los parámetros de nomenclatura.

  • ERROR_NOT_FOUND

    No hay credenciales que coincidan con los parámetros de nomenclatura especificados.

  • 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ó una marca que no es válida para el parámetro Flags .

Comentarios

Esta función devuelve las credenciales más específicas que coinciden con los parámetros de nomenclatura. Por ejemplo, si hay una credencial que coincida con el nombre del servidor de destino y una credencial que coincida con el nombre de dominio de destino, solo se devuelve la credencial específica del servidor. Esta es la credencial que se usaría.

En la lista siguiente se especifica el orden (del más específico al menos específico) de la credencial que se devuelve si hay más de una coincidencia:

  • El nombre de destino de credencial tiene el formato <DfsRoot>\<DfsShare> y es una coincidencia exacta en TargetName.
  • Una coincidencia exacta en DnsServerName.
  • Coincidencia exacta en NetBIOSServerName.
  • Coincidencia exacta en TargetName.
  • Una coincidencia de DnsServerName con una credencial de servidor comodín. Si coincide con más de una credencial de servidor con caracteres comodín, se usa la credencial con targetName más larga. Es decir, se usa una credencial para *.example.microsoft.com en lugar de una credencial para *.microsoft.com.
  • Una coincidencia exacta de DnsDomainName con una credencial de dominio comodín con el formato <DnsDomainName>\*.
  • Una coincidencia exacta de NetBIOSDomainName con una credencial de dominio comodín con el formato <NetBIOSDomainName>\*
  • Credencial denominada CRED_SESSION_WILDCARD_NAME.
  • La credencial denominada "*".
CredReadDomainCredentials difiere de CredRead 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 de la estructura CREDENTIAL especificada por el parámetro Credentials es CRED_TYPE_DOMAIN_EXTENDED, se debe especificar un espacio de nombres en el nombre de destino. Esta función solo puede devolver una credencial del tipo especificado.

Esta función puede devolver varias credenciales de este tipo, pero CRED_TYPE_DOMAIN_EXTENDED no se puede mezclar con otros tipos del miembro CredTypes de la estructura CREDENTIAL_TARGET_INFORMATION especificada por el parámetro TargetInfo .

Nota

El encabezado wincred.h define CredReadDomainCredentials 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 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]
Plataforma de destino Windows
Encabezado wincred.h
Library Advapi32.lib
Archivo DLL Advapi32.dll