Condividi tramite


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 il identificatore di sicurezza (SID) dell'utente disabilitato.

Sintassi

BOOL CredWriteW(
  [in] PCREDENTIALW 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 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/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 alla 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 flag di .
ERROR_BAD_USERNAME
Il membro UserName passato nella struttura credenziali non è valido. Per una descrizione della sintassi valida del nome utente, 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
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.

Osservazioni

Questa funzione crea credenziali se non esiste una credenziale con il TargetName specificato e Tipo. Se esiste una credenziale con il TargetName specificato e Type esiste, la nuova credenziale specificata sostituisce quella esistente.

Quando questa funzione scrive una credenziale di CRED_TYPE_CERTIFICATE, il membroCredential -CredentialBlob specifica il PIN che protegge la chiave privata del certificato specificato dal Credential-UserName membro. 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 provider di servizi di crittografia 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 di Type della struttura CREDENTIAL specificata 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 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

Vedere anche

CREDENTIAL