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

Parametri

[in] Credential

Puntatore alla struttura CREDENTIAL da scrivere.

[in] Flags

Contrassegna che controlla l'operazione della funzione. Il flag seguente è definito.

Valore Significato
CRED_PRESERVE_CREDENTIAL_BLOB
Il BLOB delle credenziali da una credenziale esistente viene conservato con lo stesso nome di credenziali e tipo di credenziale. La struttura CredentialBlobSize della struttura di 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 della 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
Non è possibile modificare determinati campi 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 per il parametro Flags .
ERROR_BAD_USERNAME
Il membro UserName della struttura Credential 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 nome di destinazione e tipo.
SCARD_E_NO_READERS_AVAILABLE
La credenziale CRED_TYPE_CERTIFICATE scritta richiede che sia disponibile il lettore smart card.
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. Invece, il PIN viene 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 CSP definisce la durata del PIN. La maggior parte dei provider di servizi di rete scarica il PIN quando la rimozione della smart card dal lettore 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 di destinazione. Questa funzione non supporta la scrittura in 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 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

Vedi anche

CREDENZIALI