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;
Members
Flags
Membro bit che identifica le caratteristiche delle credenziali. I bit non definiti devono essere inizializzati come zero e non altrimenti modificati per consentire un miglioramento futuro.
Valore | Significato |
---|---|
|
Impostare bit se la credenziale non persiste nella 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 Type è CRED_TYPE_DOMAIN_CERTIFICATE, CredentialBlob non viene persistente tra le sessioni di accesso perché il PIN di un certificato è informazioni molto sensibili. In effetti, quando la credenziale viene scritta in gestione credenziali, il PIN viene passato al provider di servizi di gestione credenziali associato al certificato. Il provider di servizi di configurazione applica un criterio di conservazione pin appropriato al certificato. Se type è CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, un pacchetto di autenticazione ha sempre esito negativo quando si usano le credenziali contrassegnate come CRED_FLAGS_PROMPT_NOW. L'applicazione (in genere tramite l'interfaccia utente dell'anello della chiave) richiede all'utente la password. L'applicazione salva le credenziali e riprova l'autenticazione. Poiché le credenziali sono state scritte di recente, il pacchetto di autenticazione ottiene ora una credenziale non contrassegnata come CRED_FLAGS_PROMPT_NOW. |
|
Bit è impostato se questa credenziale ha un membro TargetName impostato sullo stesso valore del membro UserName . Questa credenziale è progettata per archiviare CredentialBlob per un utente specifico. Per altre informazioni, vedere la funzione CredMarshalCredential .
Questo bit può essere specificato solo se Type è CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE. |
Type
Tipo di credenziale. Impossibile modificare questo membro dopo la creazione delle credenziali. I valori seguenti sono validi.
TargetName
Nome della credenziale. I membri TargetName e Type identificano in modo univoco le credenziali. Impossibile modificare questo membro dopo la creazione delle credenziali. Le credenziali con il nome precedente devono invece essere eliminate e le credenziali con il nuovo nome creato.
Se Type è CRED_TYPE_DOMAIN_PASSWORD o CRED_TYPE_DOMAIN_CERTIFICATE, questo membro identifica il server o i server per cui deve essere usata la credenziale. Il membro è un nome server NetBIOS o DNS, un suffisso nome host DNS contenente 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 targetName è un suffisso nome host DNS contenente un carattere jolly, l'etichetta più 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 TargetName è un nome di dominio contenente 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 con 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 qualsiasi server raggiunto 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 vogliono 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 tipo è 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 dell'azienda 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 è senza 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
Dimensioni, 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 sia letto che scritto.
Se il membro Type è CRED_TYPE_DOMAIN_PASSWORD, questo membro contiene la password Unicode non crittografata 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.
Le credenziali devono essere portabili. Le applicazioni devono assicurarsi che i dati in CredentialBlob siano portatili. 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.
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 il tipo di credenziali è CRED_TYPE_GENERIC, questo membro può essere diverso da NULL, ma gestione credenziali ignora il membro.
UserName
Nome utente dell'account usato per connettersi a TargetName.
Se il tipo di credenziale è CRED_TYPE_DOMAIN_PASSWORD, questo membro può essere un nome di dominio\Nomeutente o un UPN.
Se il tipo di credenziali è CRED_TYPE_DOMAIN_CERTIFICATE, questo membro deve essere un riferimento al certificato di marshalling creato chiamando CredMarshalCredential con un certificato CertCredential.
Se il tipo di credenziali è CRED_TYPE_GENERIC, questo membro può essere diverso da NULL, ma gestione credenziali ignora il membro.
Questo membro non può essere più lungo di CRED_MAX_USERNAME_LENGTH (513) caratteri.
Commenti
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 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
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | wincred.h |