2010-04-07 19 views
8

Questa è una domanda di intervista un mese fa ....La sessione utilizza i cookie?

La sessione utilizza i cookie? Se è così, come fanno?

Assumere Session["UserId"]=1 come questa variabile di sessione utilizza i cookie internamente? In tal caso, quale sarà il nome del cookie e qual è il valore di quel cookie ....

risposta

10

Mentre i dati sono memorizzati sul server (o in SQL se configurato in questo modo), è necessario un modo per associare i dati di sessione a utenti specifici.

Per impostazione predefinita, questo viene fatto con un cookie, ma è possibile configurare senza cookie, nel qual caso l'ID univoco è memorizzato nell'URL.

Da Microsoft:

ASP mantiene lo stato della sessione, fornendo al cliente una chiave unica assegnata all'utente quando inizia la sessione. Questa chiave è memorizzata in un cookie HTTP che il client invia al server in ogni richiesta. Il server può quindi leggere la chiave dal cookie e gonfiare nuovamente lo stato della sessione del server.

http://msdn.microsoft.com/en-us/library/ms972429.aspx

+0

L'articolo cita quasi tutti i dettagli. L'ID sessione deve essere passato tra il browser e il server, quindi IIS/ASP.NET può sapere quale oggetto di sessione deve essere utilizzato per una determinata richiesta. –

+0

Controlla [questo] (http://stackoverflow.com/questions/6353703/session-cookie-some-misunderstandings) – Jibin

-8

no, memorizzato sul server da qualche parte nella cartella tmp. Le sessioni sono lato server, i cookie sono lato client.

+1

I cookie sono il metodo predefinito per legare l'id di sessione di un utente ai dati di sessione sul server. –

+0

in sessioni di php sono memorizzati sul server. non ho realizzato che questo era asp. colpa mia. – luckytaxi

+1

Hai ragione nel fatto che la variabile attuale è memorizzata sul server (sebbene tu possa fornire un diverso provider di stato di sessione), ma come sottolinea Michael Shimmins, il token di sessione è memorizzato in un cookie per impostazione predefinita. – R0MANARMY

1

Ogni sessione avrà SessionID. E l'ID sessione è un numero univoco, il server assegna a un utente specifico, durante la sua visita (sessione). E in via predefinita, l'ID di sessione è allegato a un cookie e questo cookie verrà condiviso da client a server (e da server a client) durante le sue richieste/risposte. E il server identificherà la sessione in base all'ID di sessione che viene recuperato dal cookie.

E per quanto riguarda cookieless, se il browser non supporta cookie o disabilitato, verrà utilizzato cookieless. Poiché è Cookieless, asp.net non può creare un cookie per salvare l'ID di sessione. Invece, l'ID di sessione verrà passato nella stringa di query ...

Problemi correlati