Funzione CredWriteDomainCredentialsW (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 CredWriteDomainCredentialsW(
  [in] PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  [in] PCREDENTIALW                    Credential,
  [in] DWORD                           Flags
);

Parametri

[in] TargetInfo

Identifica il server di destinazione. Almeno uno dei membri di denominazione deve essere diverso da NULL e può essere NetbiosServerName, DnsServerName, NetbiosDomainName, DnsDomainName o DnsTreeName.

[in] Credential

Credenziali da scrivere.

La credenziale deve corrispondere a TargetInfo . Ad esempio, se TargetName è un nome DNS con caratteri jolly, il membro TargetName della credenziale deve essere un prefisso del membro DnsServerName da 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 e tipo di credenziale. La proprietà CredentialBlobSize della struttura delle credenziali passata deve essere zero.

Valore restituito

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

Se la funzione ha esito negativo, 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 su CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE oppure la credenziale non corrisponde a 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 di rete non hanno un set di credenziali associato.
ERROR_INVALID_FLAGS
Valore non valido specificato per il parametro Flags .
ERROR_BAD_USERNAME
Il membro UserName della struttura delle credenziali passata 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 esistente con lo stesso TargetName e Type.
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.

Commenti

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

CredWriteDomainCredentials differisce da CredWrite in quanto gestisce le idioincrone delle credenziali del 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 parametro Credential è CRED_TYPE_DOMAIN_EXTENDED, è necessario specificare uno spazio dei nomi nel nome della 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

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