HttpSessionState.IsCookieless Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che indica se l'ID sessione è incorporato nell'URL o archiviato in un cookie HTTP.
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
Valore della proprietà
true se la sessione è incorporata nell'URL; in caso contrario, false.
Esempio
Nell'esempio di codice seguente l'attributo cookieless di sessione viene impostato su true nel file Web.config.
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
Commenti
ASP.NET identifica le sessioni in modo univoco con ogni browser. Per impostazione predefinita, l'identificatore univoco per una sessione viene archiviato in un cookie di sessione non scaduto nel browser. È possibile specificare che gli identificatori di sessione non devono essere archiviati in un cookie impostando l'attributo cookieless su true nell'elemento di configurazione sessionState .
Annotazioni
Per migliorare la sicurezza dell'applicazione, l'applicazione deve consentire agli utenti di disconnettersi, a quel punto deve chiamare il Abandon metodo . In questo modo si riduce il rischio che un'origine indesiderata usi l'identificatore univoco nell'URL per recuperare i dati privati archiviati nella sessione per un utente.
ASP.NET mantiene lo stato della sessione senza cookie inserendo automaticamente un ID sessione univoco nell'URL della pagina. Ad esempio, l'URL seguente è stato modificato da ASP.NET per includere l'ID sessione univoco lit3py55t21z5v55vlm25s55:
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET modifica i collegamenti contenuti in tutte le pagine richieste incorporando un valore id sessione nei collegamenti appena prima di inviare ogni pagina al browser. Lo stato della sessione viene mantenuto finché l'utente segue il percorso dei collegamenti forniti dal sito. Tuttavia, se l'agente utente riscrive un URL, l'istanza dello stato della sessione andrà persa.
L'ID sessione viene incorporato nell'URL dopo la barra che segue il nome dell'applicazione e prima di qualsiasi identificatore di file o directory virtuale rimanente. In questo modo ASP.NET risolvere il nome dell'applicazione prima di coinvolgere il SessionStateModule nella richiesta.
Per impostazione predefinita, gli identificatori di sessione usati nelle sessioni senza cookie vengono riciclati. Ovvero, se viene effettuata una richiesta con un ID sessione scaduto, viene avviata una nuova sessione usando l'ID sessione fornito con la richiesta. Questo comportamento può comportare la condivisione indesiderata dei dati della sessione quando un collegamento che contiene un ID sessione senza cookie viene condiviso con più browser, ad esempio tramite un motore di ricerca o un altro programma. È possibile ridurre la possibilità di condividere i dati di sessione da più client disabilitando il riciclo degli identificatori di sessione. A tale scopo, impostare l'attributo dell'elemento regenerateExpiredSessionId di configurazione sessionState su true. Ciò comporterà la generazione di un nuovo ID sessione quando viene effettuata una richiesta di sessione senza cookie con un ID sessione scaduto. Si noti che se la richiesta effettuata con l'ID sessione scaduta usa il metodo HTTP POST, tutti i dati pubblicati andranno persi quando regenerateExpiredSessionId è true, come ASP.NET esegue un reindirizzamento per assicurarsi che il browser disponga del nuovo identificatore di sessione nell'URL.
Annotazioni
Quando si imposta l'attributo regenerateExpiredSessionId per true ridurre la possibilità di condivisione indesiderata dei dati della sessione, non protegge da un'origine indesiderata che ottiene l'accesso alla sessione di un altro utente ottenendo il SessionID valore e includendolo nelle richieste al server. Se si archiviano informazioni private o riservate nello stato della sessione, è consigliabile usare SSL per crittografare qualsiasi comunicazione tra il browser e il server che include .SessionID