Funzione CredReadDomainCredentialsA (wincred.h)

La funzione CredReadDomainCredentials legge le credenziali di dominio dal set di credenziali dell'utente. Il set di credenziali usato è quello associato alla sessione di accesso del token corrente. Il token non deve avere disabilitato il SID dell'utente.

Sintassi

BOOL CredReadDomainCredentialsA(
  [in]  PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALA                    **Credential
);

Parametri

[in] TargetInfo

Informazioni di destinazione che identificano il server di destinazione. Almeno uno dei membri di denominazione non deve essere NULL: NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName o DnsTreeName.

[in] Flags

Contrassegni che controllano l'operazione della funzione.

Il flag seguente è definito:

CRED_CACHE_TARGET_INFORMATION

Memorizzare nella cache TargetInfo per una lettura successiva usando CredGetTargetInfo.

[out] Count

Conteggio delle credenziali restituite nella matrice Credenziali .

[out] Credential

Puntatore a una matrice di puntatori alle credenziali. Viene restituita la credenziale esistente più specifica corrispondente a TargetInfo . Se esistono credenziali di vari tipi, ad esempio CRED_TYPE_DOMAIN_PASSWORD e credenziali di CRED_TYPE_DOMAIN_CERTIFICATE, viene restituito uno di ogni tipo. Se una connessione deve essere effettuata alla destinazione denominata, verrà usata questa credenziale più specifica.

Solo questi tipi di credenziali specificati da TargetInfo. La matrice CredTypes viene restituita. La matrice di credenziali restituita viene ordinata nello stesso ordine di TargetInfo. Matrice CredTypes. Ovvero, i pacchetti di autenticazione specificano un tipo di credenziale preferito specificandolo in precedenza in TargetInfo. Matrice CredTypes. Se TargetInfo. CredTypeCount è zero, la matrice Credenziali viene restituita nell'ordine ordinato seguente:

  • CRED_TYPE_DOMAIN_CERTIFICATE
  • CRED_TYPE_DOMAIN_PASSWORD

Il buffer restituito è un singolo blocco allocato. Tutti i puntatori contenuti nel buffer sono puntatori a posizioni all'interno di questo singolo blocco allocato. Il singolo buffer restituito deve essere liberato chiamando CredFree.

Valore restituito

La funzione restituisce TRUE in caso di esito positivo e FALSE in caso di errore. La funzione GetLastError può essere chiamata per ottenere un codice di stato più specifico. È possibile restituire i codici di stato seguenti:

  • ERROR_INVALID_PARAMETER

    Nessuno dei parametri di denominazione è stato specificato.

  • ERROR_NOT_FOUND

    Non sono presenti credenziali corrispondenti ai parametri di denominazione specificati.

  • ERROR_NO_SUCH_LOGON_SESSION

    La sessione di accesso non esiste o non esiste alcun set di credenziali associato a questa sessione di accesso. Le sessioni di accesso di rete non hanno un set di credenziali associato.

  • ERROR_INVALID_FLAGS

    Flag non valido per il parametro Flags .

Commenti

Questa funzione restituisce le credenziali più specifiche corrispondenti ai parametri di denominazione. Ad esempio, se è presente una credenziale corrispondente al nome del server di destinazione e a una credenziale corrispondente al nome di dominio di destinazione, viene restituita solo la credenziale specifica del server. Questa è la credenziale che verrà usata.

L'elenco seguente specifica l'ordine (dalla più specifica alla specifica minima) delle credenziali restituite se più corrispondenze:

  • Il nome di destinazione delle credenziali è del modulo <DfsRoot>\<DfsShare> ed è una corrispondenza esatta in TargetName.
  • Corrispondenza esatta in DnsServerName.
  • Corrispondenza esatta in NetBIOSServerName.
  • Corrispondenza esatta in TargetName.
  • Corrispondenza di DnsServerName a una credenziale del server con caratteri jolly. Se vengono usate più credenziali del server con caratteri jolly, viene usata la credenziale con targetName più lungo. Ovvero, viene usata una credenziale per *.example.microsoft.com anziché una credenziale per *.microsoft.com.
  • Corrispondenza esatta di DnsDomainName a una credenziale di dominio con caratteri jolly del modulo <DnsDomainName>\*.
  • Corrispondenza esatta del nome NetBIOSDomainName a una credenziale di dominio con caratteri jolly del modulo <NetBIOSDomainName>\*
  • Credenziali denominate CRED_SESSION_WILDCARD_NAME.
  • Credenziali denominate "*".
CredReadDomainCredentials differisce da CredRead in quanto gestisce le credenziali di dominio (CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE). Le credenziali di dominio contengono più membri di destinazione.

Se il valore del membro Type della struttura CREDENTIAL specificato dal parametroCredential è CRED_TYPE_DOMAIN_EXTENDED, è necessario specificare uno spazio dei nomi nel nome di destinazione. Questa funzione può restituire solo una credenziale del tipo specificato.

Questa funzione può restituire più credenziali di questo tipo, ma CRED_TYPE_DOMAIN_EXTENDED non può essere mista con altri tipi nel membro CredTypesdella struttura CREDENTIAL_TARGET_INFORMATION specificata dal parametro TargetInfo .

Nota

L'intestazione wincred.h definisce CredReadDomainCredentials come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincred.h
Libreria Advapi32.lib
DLL Advapi32.dll