2009-05-14 6 views

risposta

19

Non è né int né guid; dal MSDN help file ...

L'identificatore di sessione ASP.NET è un numero generato casualmente codificato in una stringa di 24 caratteri composto di caratteri minuscoli da A a Z e numeri da 0 a 5.

+5

... che lo rende 120 bit. – teedyay

+0

La risposta non è rilevante per ciò che viene richiesto qui! Doveva semplicemente ridimensionare invece di specificare cosa viene generato con la lunghezza della stringa ... Anche se aumenta la conoscenza di qualcuno. –

+0

Quando ho visto questa domanda, questa è la risposta che stavo cercando: "Gli ID di sessione sono un numero casuale di 120 bit rappresentato da una stringa di 20 caratteri" da [https://support.microsoft.com/it/it noi/kb/899.918] (https://support.microsoft.com/en-us/kb/899918) –

-2

Poiché è generato come valore di tipo System.Guid, è un numero intero a 128 bit, ovvero 16 byte.

+1

Questo non è corretto. AFAIK, GUID sono stati utilizzati in ASP Classic ma sono stati rilasciati in ASP.Net perché la generazione GUID era troppo prevedibile e ciò ha provocato un difetto di sicurezza. – kervin

1

Vorrei andare con 88 byte. Se si guarda il database di stato ASP.NET, questo è il modo in cui è definito.

4

Il motivo degli 8 caratteri extra nel database rispetto a quello che si ottiene nel codice è l'ID dell'applicazione. Nel database alla sessione viene aggiunto il tempApplicationID dalla tabella ASPStateTempApplications. Questo è il motivo per cui ottieni 24 caratteri nel codice e 32 nel db.

Problemi correlati