Funzione CreateMD5SSOHash (wininet.h)

La funzione CreateMD5SSOHash ottiene la password predefinita di Microsoft Passport per un account o un'area di autenticazione specificata, crea un hash MD5 da esso usando una stringa di sfida a caratteri wide specificata e restituisce il risultato come stringa di byte di cifre esadecimali.

Sintassi

BOOL CreateMD5SSOHash(
  [in]  PWSTR pszChallengeInfo,
  [in]  PWSTR pwszRealm,
  [in]  PWSTR pwszTarget,
  [out] PBYTE pbHexHash
);

Parametri

[in] pszChallengeInfo

Puntatore alla stringa di sfida a caratteri wide da usare per l'hash MD5.

[in] pwszRealm

Puntatore a una stringa che assegna un nome a un'area di autenticazione per cui ottenere la password. Questo parametro viene ignorato a meno che pwszTarget non sia NULL. Se sia pwszTarget che pwszRealm sono NULL, viene usata l'area di autenticazione predefinita.

[in] pwszTarget

Puntatore a una stringa che assegna un nome a un account per cui ottenere la password. Se pwszTarget è NULL, viene usato l'area di autenticazione indicata da pwszRealm .

[out] pbHexHash

Puntatore a un buffer di output in cui viene restituito l'hash MD5 in formato esadecimale. Questo buffer deve essere di almeno 33 byte.

Valore restituito

Restituisce TRUE se ha esito positivo o FALSE in caso contrario.

Commenti

Dopo che la funzione CreateMD5SSOHash ottiene correttamente la password di Microsoft Passport per l'account o l'area di autenticazione specificata, converte sia la stringa di sfida che la password da caratteri wide a caratteri multi-byte (in genere a 8 bit), concatenarli e usa la libreria RSA per generare un hash MD5 dalla chiave risultante. Converte quindi l'hash in una stringa con terminazione null di cifre esadecimali a 8 bit (usando lettere minuscole) che inserisce nel buffer a cui punta il parametro pbHexHash .

Il buffer di output a cui punta pbHexHash deve pertanto essere abbastanza lungo per accettare due byte per ognuno dei 16 byte dell'hash, oltre a un carattere null terminante, per un totale di 33 byte.

Come tutti gli altri aspetti dell'API WinINet, questa funzione non può essere chiamata in modo sicuro dall'interno di DllMain o dai costruttori e distruttori degli oggetti globali.

Nota WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni o i servizi server usano Microsoft Windows HTTP Services (WinHTTP).
 

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wininet.h (include Wininet.h)
Libreria Wininet.lib
DLL Wininet.dll

Vedi anche

Gestione dell'autenticazione

Funzioni WinINet