Condividi tramite


Funzione CredWriteDomainCredentialsA (wincred.h)

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

Sintassi

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

Parametri

[in] TargetInfo

Identifica il server di destinazione. Almeno uno dei membri di denominazione deve essere diverso daNULL e può essere NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainNameo DnsTreeName.

[in] Credential

Credenziali da scrivere.

La credenziale deve corrispondere a TargetInfo Ad esempio, se il TargetName è un nome DNS con caratteri jolly, il TargetName membro della credenziale deve essere un prefisso del membro dnsServerName dal TargetInfo.

[in] Flags

Flag per controllare l'operazione dell'API. Viene definito il flag seguente.

Valore Significato
CRED_PRESERVE_CREDENTIAL_BLOB
Il BLOB delle credenziali deve essere mantenuto dalla credenziale già esistente con lo stesso nome di credenziali e tipo di credenziale. Il CredentialBlobSize della struttura credenziali passata deve essere zero.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce TRUE.

Se la funzione non riesce, restituisce FALSE. Chiamare la funzione GetLastError per ottenere un codice di stato più specifico. È possibile restituire i codici di stato seguenti.

È possibile restituire altri errori di smart card durante la scrittura di una credenziale CRED_TYPE_CERTIFICATE.

Codice restituito Descrizione
ERROR_INVALID_PARAMETER
Uno o più parametri non sono validi. Nessuno dei parametri di denominazione è stato specificato oppure la credenziale specificata non ha impostato il membro Type impostato su CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE oppure il Credential non corrisponde al TargetInfo.
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 alla rete non hanno un set di credenziali associato.
ERROR_INVALID_FLAGS
Valore non valido specificato per il parametro flag di .
ERROR_BAD_USERNAME
Il membro UserName passato nella struttura credenziali non è valido. Per una descrizione delle sintassi valide, vedere la definizione di tale membro.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB è stato specificato e non esiste alcuna credenziale dalla stessa TargetName e Tipo.
SCARD_E_NO_READERS_AVAILABLE
La credenziale CRED_TYPE_CERTIFICATE scritta richiede che il lettore di smart card sia disponibile.
SCARD_E_NO_SMARTCARD o SCARD_W_REMOVED_CARD: CRED_TYPE_CERTIFICATE
La credenziale scritta richiede l'inserimento della smart card.
SCARD_W_WRONG_CHV
Il PIN errato è stato fornito per la scrittura delle credenziali CRED_TYPE_CERTIFICATE.

Osservazioni

Quando questa funzione scrive una credenziale CRED_TYPE_CERTIFICATE, Credential->membro CredentialBlob specifica il PIN che protegge la chiave privata del certificato specificato dal Credential->UserName. Gestione credenziali non gestisce il PIN. Il PIN viene invece passato al provider di servizi di configurazione del certificato per usarlo successivamente dai pacchetti CSP e di autenticazione. Il provider di servizi di configurazione definisce la durata del PIN. Ad esempio, la maggior parte dei CSP scarica il PIN al momento della rimozione della smart card.

CredWriteDomainCredentials differisce da CredWrite in quanto gestisce le idiosrase delle 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 di Type della struttura CREDENTIAL specificata dal parametro Credential è CRED_TYPE_DOMAIN_EXTENDED, è necessario specificare uno spazio dei nomi nel nome di destinazione.

Nota

L'intestazione wincred.h definisce CredWriteDomainCredentials come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione wincred.h
libreria Advapi32.lib
dll Advapi32.dll