Condividi tramite


Struttura CREDENTIALW (wincred.h)

La struttura CREDENTIAL contiene una singola credenziale.

Sintassi

typedef struct _CREDENTIALW {
  DWORD                  Flags;
  DWORD                  Type;
#if ...
  wchar_t                *TargetName;
#else
  LPWSTR                 TargetName;
#endif
#if ...
  wchar_t                *Comment;
#else
  LPWSTR                 Comment;
#endif
  FILETIME               LastWritten;
  DWORD                  CredentialBlobSize;
  LPBYTE                 CredentialBlob;
  DWORD                  Persist;
  DWORD                  AttributeCount;
  PCREDENTIAL_ATTRIBUTEW Attributes;
#if ...
  wchar_t                *TargetAlias;
#else
  LPWSTR                 TargetAlias;
#endif
#if ...
  wchar_t                *UserName;
#else
  LPWSTR                 UserName;
#endif
} CREDENTIALW, *PCREDENTIALW;

Membri

Flags

Membro bit che identifica le caratteristiche delle credenziali. I bit non definiti devono essere inizializzati come zero e non modificati in altro modo per consentire miglioramenti futuri.

Valore Significato
CRED_FLAGS_PROMPT_NOW
2 (0x2)
Bit impostato se la credenziale non rende persistente il CredentialBlob e le credenziali non sono state scritte durante questa sessione di accesso. Questo bit viene ignorato nell'input e viene impostato automaticamente quando viene eseguita una query.

Se Tipo è CRED_TYPE_DOMAIN_CERTIFICATE, il CredentialBlob non viene salvato in modo permanente tra le sessioni di accesso perché il PIN di un certificato è molto sensibile. Infatti, quando la credenziale viene scritta in Gestione credenziali, il PIN viene passato al CSP associato al certificato. Il provider di servizi di configurazione applichererà un criterio di conservazione PIN appropriato per il certificato.

Se Tipo è CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, un pacchetto di autenticazione non riesce sempre un tentativo di autenticazione quando si usano credenziali contrassegnate come CRED_FLAGS_PROMPT_NOW. L'applicazione (in genere tramite l'interfaccia utente dell'anello di tasti) richiede all'utente la password. L'applicazione salva le credenziali e ritenta l'autenticazione. Poiché le credenziali sono state scritte di recente, il pacchetto di autenticazione ottiene ora credenziali non contrassegnate come CRED_FLAGS_PROMPT_NOW.

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
Bit è impostato se questa credenziale ha un membro TargetName impostato sullo stesso valore del membro UserName. Queste credenziali sono progettate per archiviare il CredentialBlob per un utente specifico. Per altre informazioni, vedere la funzione credMarshalCredential .

Questo bit può essere specificato solo se Tipo è CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE.

Type

Tipo di credenziale. Questo membro non può essere modificato dopo la creazione delle credenziali. I valori seguenti sono validi.

Valore Significato
CRED_TYPE_GENERIC
1 (0x1)
La credenziale è una credenziale generica. Le credenziali non verranno usate da alcun pacchetto di autenticazione specifico. Le credenziali verranno archiviate in modo sicuro, ma non presentano altre caratteristiche significative.
CRED_TYPE_DOMAIN_PASSWORD
2 (0x2)
La credenziale è una credenziale password ed è specifica per i pacchetti di autenticazione di Microsoft. I pacchetti di autenticazione NTLM, Kerberos e Negotiate useranno automaticamente queste credenziali durante la connessione alla destinazione denominata.
CRED_TYPE_DOMAIN_CERTIFICATE
3 (0x3)
La credenziale è una credenziale del certificato ed è specifica per i pacchetti di autenticazione di Microsoft. I pacchetti di autenticazione Kerberos, Negotiate e Schannel usano automaticamente queste credenziali durante la connessione alla destinazione denominata.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4 (0x4)
Questo valore non è più supportato.

Windows Server 2003 e Windows XP: La credenziale è una credenziale password ed è specifica per i pacchetti di autenticazione di Microsoft. Il pacchetto di autenticazione Passport userà automaticamente questa credenziale durante la connessione alla destinazione denominata.

I valori aggiuntivi verranno definiti in futuro. Le applicazioni devono essere scritte per consentire i tipi di credenziali che non capiscono.

CRED_TYPE_GENERIC_CERTIFICATE
5 (0x5)
La credenziale è una credenziale del certificato che è un pacchetto di autenticazione generico.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.

CRED_TYPE_DOMAIN_EXTENDED
6 (0x6)
Le credenziali sono supportate dai pacchetti Negotiate estesi.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.

CRED_TYPE_MAXIMUM
7 (0x7)
Numero massimo di tipi di credenziali supportati.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
Numero massimo esteso di tipi di credenziali supportati che ora consentono l'esecuzione di nuove applicazioni nei sistemi operativi meno recenti.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.

TargetName

Nome della credenziale. I membri TargetName e Type identificano in modo univoco le credenziali. Questo membro non può essere modificato dopo la creazione delle credenziali. Al contrario, le credenziali con il nome precedente devono essere eliminate e le credenziali con il nuovo nome creato.

Se tipo è CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, questo membro identifica il server o i server per cui devono essere utilizzate le credenziali. Il membro è un nome di server NetBIOS o DNS, un suffisso del nome host DNS che contiene un carattere jolly, un nome di dominio NetBIOS o DNS che contiene una sequenza di caratteri jolly o un asterisco.

Se TargetName è un nome host DNS, il membro TargetAlias può essere il nome NetBIOS dell'host.

Se il TargetName è un suffisso del nome host DNS contenente un carattere jolly, l'etichetta più a sinistra del nome host DNS è un asterisco (*), che indica che il nome di destinazione è qualsiasi server il cui nome termina nel nome specificato, ad esempio *.microsoft.com.

Se il TargetName è un nome di dominio che contiene una sequenza di caratteri jolly, la sintassi è il nome di dominio seguito da una barra rovesciata e un asterisco (\*), che indica che il nome di destinazione è qualsiasi server membro del dominio denominato (o area di autenticazione).

Se TargetName è un nome di dominio DNS contenente una sequenza di caratteri jolly, il membro TargetAlias può essere un nome di dominio NetBIOS che usa una sequenza di caratteri jolly per lo stesso dominio.

Se TargetName specifica una condivisione DFS, ad esempio DfsRoot\DfsShare, questa credenziale corrisponde alla condivisione DFS specifica e a tutti i server raggiunti tramite tale condivisione DFS.

Se TargetName è un singolo asterisco (*), questa credenziale corrisponde a qualsiasi nome del server.

Se TargetName è CRED_SESSION_WILDCARD_NAME, questa credenziale corrisponde a qualsiasi nome del server. Questa credenziale corrisponde prima di un singolo asterisco ed è valida solo se Persist è CRED_PERSIST_SESSION. Le credenziali possono essere impostate dalle applicazioni che desiderano eseguire temporaneamente l'override delle credenziali predefinite.

Questo membro non può essere più lungo di CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) caratteri.

Se il type è CRED_TYPE_GENERIC, questo membro deve identificare il servizio che usa le credenziali oltre alla destinazione effettiva. Microsoft suggerisce che il nome sia preceduto dal nome della società che implementa il servizio. Microsoft userà il prefisso "Microsoft". I servizi scritti da Microsoft devono aggiungere il nome del servizio, ad esempio Microsoft_RAS_TargetName. Questo membro non può essere più lungo di CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) caratteri.

Questo membro non fa distinzione tra maiuscole e minuscole.

Comment

Commento stringa dell'utente che descrive questa credenziale. Questo membro non può essere più lungo di CRED_MAX_STRING_LENGTH (256) caratteri.

LastWritten

Ora, in Coordinated Universal Time (Greenwich Mean Time), dell'ultima modifica delle credenziali. Per le operazioni di scrittura, il valore di questo membro viene ignorato.

CredentialBlobSize

Dimensione, in byte, del membro CredentialBlob. Questo membro non può essere maggiore di CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) byte.

CredentialBlob

Dati segreti per le credenziali. Il membro CredentialBlob può essere letto e scritto.

Se il membro Type è CRED_TYPE_DOMAIN_PASSWORD, questo membro contiene la password Unicode in testo non crittografato per UserName. I membri CredentialBlob e CredentialBlobSize non includono un carattere finale zero. Inoltre, per CRED_TYPE_DOMAIN_PASSWORD, questo membro può essere letto solo dai pacchetti di autenticazione.

Se il membro Type è CRED_TYPE_DOMAIN_CERTIFICATE, questo membro contiene il PIN Unicode di test chiaro per UserName. I membri CredentialBlob e CredentialBlobSize non includono un carattere finale zero. Inoltre, questo membro può essere letto solo dai pacchetti di autenticazione.

Se il membro Type è CRED_TYPE_GENERIC, questo membro viene definito dall'applicazione.

È previsto che le credenziali siano portabili. Le applicazioni devono assicurarsi che i dati in CredentialBlob siano portabili. L'applicazione definisce il byte-endian e l'allineamento dei dati in CredentialBlob.

Persist

Definisce la persistenza di questa credenziale. Questo membro può essere letto e scritto.

Valore Significato
CRED_PERSIST_SESSION
1 (0x1)
Le credenziali vengono mantenute per la durata della sessione di accesso. Non sarà visibile ad altre sessioni di accesso dello stesso utente. Non esisterà dopo che l'utente si disconnette e torna.
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
Le credenziali vengono mantenute per tutte le sessioni di accesso successive nello stesso computer. È visibile ad altre sessioni di accesso dello stesso utente nello stesso computer e non è visibile alle sessioni di accesso per questo utente in altri computer.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter e Windows XP Home Edition: Questo valore non è supportato.

CRED_PERSIST_ENTERPRISE
3 (0x3)
Le credenziali vengono mantenute per tutte le sessioni di accesso successive nello stesso computer. È visibile ad altre sessioni di accesso dello stesso utente nello stesso computer e alle sessioni di accesso per questo utente in altri computer.

Questa opzione può essere implementata come credenziale persistente in locale se l'amministratore o l'utente configura l'account utente in modo che non abbia lo stato in grado di eseguire il roaming. Ad esempio, se l'utente non ha un profilo mobile, le credenziali verranno mantenute solo in locale.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter e Windows XP Home Edition: Questo valore non è supportato.

AttributeCount

Numero di attributi definiti dall'applicazione da associare alle credenziali. Questo membro può essere letto e scritto. Il valore non può essere maggiore di CRED_MAX_ATTRIBUTES (64).

Attributes

Attributi definiti dall'applicazione associati alle credenziali. Questo membro può essere letto e scritto.

TargetAlias

Alias per il membro TargetName . Questo membro può essere letto e scritto. Non può essere più lungo di CRED_MAX_STRING_LENGTH (256) caratteri.

Se la tipo di credenziale è CRED_TYPE_GENERIC, questo membro può essere diverso daNULL, ma il gestore delle credenziali ignora il membro.

UserName

Nome utente dell'account usato per connettersi a TargetName.

Se la type credenziale è CRED_TYPE_DOMAIN_PASSWORD, questo membro può essere un DomainName\UserName o un UPN.

Se la tipo di credenziali è CRED_TYPE_DOMAIN_CERTIFICATE, questo membro deve essere un riferimento al certificato sottoposto a marshalling creato chiamando CredMarshalCredential con un certificato CertCredential.

Se la tipo di credenziale è CRED_TYPE_GENERIC, questo membro può essere diverso daNULL, ma il gestore delle credenziali ignora il membro.

Questo membro non può essere più lungo di CRED_MAX_USERNAME_LENGTH (513) caratteri.

Osservazioni

Nota

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