Condividi tramite


HttpSessionState.IsCookieless Proprietà

Definizione

Ottiene un valore che indica se l'ID della sessione è incorporato nell'URL o memorizzato 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, altrimenti false.

Esempio

Nell'esempio di codice seguente l'attributo cookieless 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 vengono archiviati in un cookie impostando l'attributo su true nell'elemento cookielessdi configurazione sessionState.

Nota

Per migliorare la sicurezza dell'applicazione, l'applicazione deve consentire agli utenti di disconnettersi, a quel punto deve chiamare il Abandon metodo. Ciò riduce il potenziale per un'origine indesiderata usando 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 lit3py55t21z5v5vlm25s555:

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 verrà persa.

L'ID sessione viene incorporato nell'URL dopo la barra che segue il nome dell'applicazione e prima di qualsiasi identificatore di directory virtuale o file rimanente. Ciò consente ASP.NET di risolvere il nome dell'applicazione prima di coinvolgere l'oggetto 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ò causare 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 della sessione da più client disabilitando il riciclo degli identificatori di sessione. A tale scopo, impostare l'attributo dell'elemento regenerateExpiredSessionIddi configurazione sessionState su true. Verrà generato 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 HTTPPOST, i dati pubblicati verranno persi quando è true, come regenerateExpiredSessionId ASP.NET esegue un reindirizzamento per assicurarsi che il browser abbia il nuovo identificatore di sessione nell'URL.

Nota

Durante l'impostazione dell'attributo regenerateExpiredSessionId per true ridurre la possibilità di condivisione indesiderata dei dati della sessione, non protegge da un'origine indesiderata ottenendo 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

Si applica a

Vedi anche