Funzione CredWriteA (wincred.h)

La funzione CredWrite crea una nuova credenziale o modifica una credenziale esistente nel set di credenziali dell'utente. La nuova credenziale è associata alla sessione di accesso del token corrente. Il token non deve avere disabilitato l'identificatore di sicurezza (SID) dell'utente.

Sintassi

BOOL CredWriteA(
  [in] PCREDENTIALA Credential,
  [in] DWORD        Flags
);

Parametri

[in] Credential

Puntatore alla struttura CREDENTIAL da scrivere.

[in] Flags

Flag che controllano l'operazione della funzione. Viene definito il flag seguente.

Valore Significato
CRED_PRESERVE_CREDENTIAL_BLOB
Il BLOB delle credenziali da una credenziale esistente viene mantenuto 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/valore restituito Descrizione
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_PARAMETER
Alcuni campi non possono essere modificati in una credenziale esistente. Questo errore viene restituito se un campo non corrisponde al valore in un campo protetto delle credenziali esistenti.
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 della sintassi del nome utente valida, 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
Una credenziale CRED_TYPE_CERTIFICATE 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

Questa funzione crea una credenziale se non esiste una credenziale con targetName e Type specificati. Se esiste una credenziale con targetName e Type specificati, la nuova credenziale specificata sostituisce quella esistente.

Quando questa funzione scrive una credenziale CRED_TYPE_CERTIFICATE, il membro Credential-CredentialBlob> specifica il PIN che protegge la chiave privata del certificato specificato dal membro Credential-UserName>. Gestione credenziali non gestisce il PIN. Il PIN viene invece passato al provider di servizi di crittografia (CSP) indicato nel certificato per un uso successivo da parte del CSP e dei pacchetti di autenticazione. Il provider di servizi di configurazione definisce la durata del PIN. La maggior parte dei CSP scarica il PIN quando la smart card viene rimossa dal lettore di smart card.

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. Questa funzione non supporta la scrittura nei nomi di destinazione contenenti caratteri jolly.

Nota

L'intestazione wincred.h definisce CredWrite 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

Vedi anche

CREDENZIALI