HttpSessionState.IsCookieless Proprietà

Definizione

Ottiene un valore che indica se l'ID della sessione è incorporato nell'URL o memorizzato in un cookie HTTP.Gets a value indicating whether the session ID is embedded in the URL or stored in an HTTP cookie.

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.true if the session is embedded in the URL; otherwise, false.

Esempi

Nell'esempio di codice seguente l' cookieless attributo Session viene impostato su true nel file Web. config.The following code example sets the cookieless session attribute to true in the Web.config file.

<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.ASP.NET identifies sessions uniquely with each browser. Per impostazione predefinita, l'identificatore univoco per una sessione viene archiviato in un cookie di sessione non in scadenza nel browser.By default, the unique identifier for a session is stored in a non-expiring session cookie in the browser. È possibile specificare che gli identificatori di sessione non devono essere archiviati in un cookie cookieless impostando true l'attributo su nell'elemento di configurazione sessionState .You can specify that session identifiers not be stored in a cookie by setting the cookieless attribute to true in the sessionState configuration element.

Nota

Per migliorare la sicurezza dell'applicazione, è necessario che l'applicazione consenta agli utenti di disconnettersi. a quel punto, Abandon deve chiamare il metodo.To improve the security of your application, your application should allow users to log out, at which point it should call the Abandon method. In questo modo si riduce il rischio di un'origine indesiderata usando l'identificatore univoco nell'URL per recuperare i dati privati archiviati nella sessione per un utente.This reduces the potential for an unwanted source using the unique identifier in the URL to retrieve private data stored in the session for a user.

ASP.NET gestisce lo stato della sessione senza cookie inserendo automaticamente un ID di sessione univoco nell'URL della pagina.ASP.NET maintains cookieless session state by automatically inserting a unique session ID into the page's URL. Ad esempio, l'URL seguente è stato modificato da ASP.NET per includere l'ID di sessione univoco lit3py55t21z5v55vlm25s55:For example, the following URL has been modified by ASP.NET to include the unique session ID lit3py55t21z5v55vlm25s55:

http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx  

ASP.NET modifica i collegamenti contenuti in tutte le pagine richieste incorporando un valore di ID sessione nei collegamenti appena prima di inviare ogni pagina al browser.ASP.NET modifies the links contained in all requested pages by embedding a session-ID value in the links just before sending each page to the browser. Lo stato della sessione viene mantenuto fino a quando l'utente segue il percorso dei collegamenti forniti dal sito.Session state is maintained as long as the user follows the path of links that the site provides. Tuttavia, se l'agente utente riscrive un URL, l'istanza dello stato sessione andrà persa.However, if the user agent rewrites a URL, the session-state instance will be lost.

L'ID sessione è incorporato nell'URL dopo la barra che segue il nome dell'applicazione e prima di qualsiasi altro file o identificatore di directory virtuale.The session ID is embedded in the URL after the slash that follows the application name and before any remaining file or virtual-directory identifier. Questo consente a ASP.NET di risolvere il nome dell'applicazione prima di SessionStateModule coinvolgere nella richiesta.This allows ASP.NET to resolve the application name before involving the SessionStateModule in the request.

Per impostazione predefinita, gli identificatori di sessione utilizzati nelle sessioni senza cookie vengono riciclati.By default, session identifiers used in cookieless sessions are recycled. Ovvero, se una richiesta viene effettuata con un ID di sessione scaduto, viene avviata una nuova sessione utilizzando l'ID di sessione fornito con la richiesta.That is, if a request is made with a session ID that has expired, a new session is started using the session ID supplied with the request. Questo comportamento può comportare la condivisione indesiderata dei dati della sessione quando un collegamento che contiene un ID di sessione senza cookie viene condiviso con più browser, ad esempio tramite un motore di ricerca o un altro programma.This behavior can result in the unwanted sharing of session data when a link that contains a cookieless session ID is shared with multiple browsers, perhaps through a search engine or other program. È possibile ridurre la possibilità che i dati di sessione vengano condivisi da più client disabilitando il riciclo degli identificatori di sessione.You can reduce the possibility of session data being shared by multiple clients by disabling the recycling of session identifiers. A tale scopo, impostare l' regenerateExpiredSessionId attributo dell'elemento di configurazione sessionState su true.To do this, set the regenerateExpiredSessionId attribute of the sessionState configuration element to true. Questo comporterà la generazione di un nuovo ID di sessione quando viene effettuata una richiesta di sessione senza cookie con un ID di sessione scaduto.This will result in a new session ID being generated when a cookieless session request is made with an expired session ID. Si noti che se la richiesta effettuata con l'ID sessione scaduto usa il POST metodo HTTP, eventuali dati inviati andranno perduti quando regenerateExpiredSessionId è true, poiché ASP.NET esegue un reindirizzamento per garantire che il browser disponga del nuovo identificatore di sessione nell'URL.Note that if the request made with the expired session ID uses the HTTP POST method, then any posted data will be lost when regenerateExpiredSessionId is true, as ASP.NET performs a redirect to ensure that the browser has the new session identifier in the URL.

Nota

Quando si imposta regenerateExpiredSessionId l'attributo true in modo da ridurre la possibilità di condivisione indesiderata dei dati della sessione, non protegge da un'origine indesiderata che ottiene l'accesso alla sessione SessionID di un altro utente ottenendo il valore e includerlo nelle richieste al server.While setting the regenerateExpiredSessionId attribute to true reduces the possibility of unwanted sharing of session data, it does not protect against an unwanted source gaining access to the session of another user by obtaining the SessionID value and including it in requests to the server. Se si archiviano informazioni riservate o riservate nello stato della sessione, è consigliabile utilizzare SSL per crittografare tutte le comunicazioni tra il browser e il server SessionIDin cui è incluso.If you are storing private or sensitive information in session state, it is recommended that you use SSL to encrypt any communication between the browser and server that includes the SessionID.

Si applica a

Vedi anche