Elemento sessionState (schema delle impostazioni ASP.NET)

Consente di configurare le impostazioni di stato sessione per l'applicazione corrente.

<sessionState 
    mode="[Off|InProc|StateServer|SQLServer|Custom]"
    timeout="number of minutes"
    cookieName="session identifier cookie name"
    cookieless=
         "[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
    regenerateExpiredSessionId="[True|False]"
    sessionIDManagerType="session manager type"
    sqlConnectionString="sql connection string"
    sqlCommandTimeout="number of seconds"
    allowCustomSqlDatabase="[True|False]"
    useHostingIdentity="[True|False]"
    stateConnectionString="tcpip=server:port"
    stateNetworkTimeout="number of seconds"
    customProvider="custom provider name"
    compressionEnabled="[True|False]"
    sqlConnectionRetryInterval="number of seconds">
    <providers>...</providers>
</sessionState>

Attributi ed elementi

Nelle sezioni seguenti vengono illustrati attributi, elementi figlio e padre.

Attributi

Attribute

Oggetto di descrizione

allowCustomSqlDatabase

Attributo Boolean facoltativo.

Specifica se il database SQL dello stato sessione può essere un database personalizzato invece del database predefinito ASP.NET. Se l'impostazione dell'attributo è false, non è possibile specificare un catalogo iniziale né un database come valore dell'attributo sqlConnectionString. Il database SQL dello stato sessione predefinito è il database ASPState. Per ulteriori informazioni, vedere Modalità stato sessione.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è false.

compressionEnabled

Attributo Boolean facoltativo.

Specifica se la compressione viene applicata ai dati relativi allo stato sessione.

Il valore predefinito è false.

cookieless

Attributo HttpCookieMode facoltativo.

Specifica in che modo vengono utilizzati i cookie per un'applicazione Web.

L'attributo cookieless può essere uno dei valori riportati di seguito. Il valore predefinito è UseCookies.

NotaNota
Quando si configura un sito Web ASP.NET con supporto AJAX, utilizzare solo il valore predefinito di UseCookies per l'attributo cookieless.Le impostazioni che utilizzano cookie codificati nell'URL non sono supportate dalle librerie di script client ASP.NET AJAX.
ValueOggetto di descrizione
AutoDetect ASP.NET determina se i cookie sono supportati dal browser o dalla periferica richiedente.Se il browser o il dispositivo richiedente li supporta, AutoDetect utilizza i cookie per rendere permanenti i dati utente. In caso contrario, viene utilizzato un identificatore nella stringa di query.Se supportati dal browser o dal dispositivo, ma attualmente disabilitati, i cookie vengono ugualmente utilizzati dalla funzionalità richiedente.
UseCookies I cookie rendono permanenti i dati utente indipendentemente dal fatto che siano supportati dal browser o dal dispositivo.
UseDeviceProfile ASP.NET determina se utilizzare i cookie in base all'impostazione di HttpBrowserCapabilities.Se l'impostazione HttpBrowserCapabilities indica che il browser o il dispositivo li supporta, i cookie vengono utilizzati. In caso contrario, viene utilizzato un identificatore nella stringa di query.
UseUri La funzionalità chiamante utilizza la stringa di query per memorizzare un identificatore indipendentemente dal fatto che il browser o il dispositivo supporti i cookie.

cookieName

Attributo String facoltativo.

Specifica il nome del cookie in cui viene memorizzato l'identificatore di sessione.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è "ASP.NET_SessionId".

customProvider

Attributo String facoltativo.

Specifica il nome di un provider di stato sessione da utilizzare per memorizzare e recuperare i dati dello stato sessione. Il provider viene specificato nell'elemento providers. Il provider viene utilizzato solo quando la modalità dello stato sessione è impostata sul valore Custom. Per ulteriori informazioni, vedere Modalità stato sessione.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è una stringa vuota ("").

mode

Attributo SessionStateMode facoltativo.

Specifica dove archiviare i valori dello stato sessione. Per ulteriori informazioni, vedere Modalità stato sessione.

L'attributo mode può essere uno dei valori riportati di seguito. Il valore predefinito è InProc.

ValueOggetto di descrizione
Custom Lo stato sessione utilizza un archivio dati personalizzato per archiviare le informazioni relative allo stato sessione.
InProc Lo stato sessione è in esecuzione con un processo di lavoro ASP.NET.
Off Lo stato sessione è disabilitato.
SQLServer Lo stato sessione utilizza un database di SQL Server out-of-process per archiviare le informazioni relative allo stato.
StateServer Lo stato sessione utilizza il servizio Stato di ASP.NET out-of-process per memorizzare le informazioni sullo stato.

partitionResolverType

Attributo String facoltativo.

Specifica dove archiviare lo stato sessione. Se viene specificato un valore nell'attributo partitionResolverType, gli attributi sqlConnectionString e stateConnectionString vengono ignorati. La stringa di connessione restituita dalla proprietà PartitionResolverType viene utilizzata in ogni richiesta di connessione al percorso del server appropriato per il promemoria della richiesta. Se la stringa di connessione non è valida, in ASP.NET viene generata la stessa eccezione generata quando la stringa di connessione al server configurata non è valida. Questa proprietà viene utilizzata per partizionare i dati dello stato sessione tra più nodi backend, se in modalità SQL o server di stato.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è una stringa vuota.

regenerateExpiredSessionId

Attributo Boolean facoltativo.

Specifica se l'ID di sessione verrà emesso nuovamente, quando dal client verrà specificato un ID di sessione scaduto. Per impostazione predefinita, gli ID sessione vengono emessi nuovamente solo per la modalità cookieless se è attivato regenerateExpiredSessionId. Per ulteriori informazioni, vedere IsCookieless.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è true.

sessionIDManagerType

Attributo String facoltativo.

Specifica il tipo completo del programma di gestione dell'ID di sessione. Il valore predefinito è una stringa vuota.

sqlCommandTimeout

Attributo TimeSpan facoltativo.

Specifica il timeout di durata, espresso in secondi, per i comandi SQL che utilizzano la modalità stato sessione SQL Server. Per timeout di durata si intende il numero di secondi di inattività consentito a un comando SQL prima che venga annullato.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è 0:00:30 (30 secondi).

sqlConnectionRetryInterval

Attributo TimeSpan facoltativo.

Specifica l'intervallo di tempo, in secondi, tra i tentativi di connessione al database.

Il valore predefinito è 0 secondi.

sqlConnectionString

Attributo String facoltativo.

Specifica la stringa di connessione per un computer su cui è in esecuzione SQL Server. Questo attributo è obbligatorio quando l'attributo mode è impostato sul valore SQLServer. Per ulteriori informazioni, vedere Modalità stato sessione.

È possibile impostare questo attributo su una sqlConnectionString denominata dal nodo connectionStrings o utilizzare la sintassi seguente:

sqlConnectionString="Data Source=.\SQLServer2005;Initial Catalog=SessionState;Integrated Security=SSPI;"
NotaNota
Per migliorare la sicurezza di un'applicazione quando è attiva la modalità SQLServer, utilizzare la configurazione protetta per proteggere il valore sqlConnectionString mediante la crittografia della sezione di configurazione sessionState.

Il valore predefinito è "data source=127.0.0.1;Integrated Security=SSPI".

stateConnectionString

Attributo String facoltativo.

Specifica l'indirizzo o il nome e la porta del server in cui lo stato sessione è memorizzato in remoto. Il valore della porta deve essere 42424. Questo attributo è obbligatorio quando mode corrisponde al valore StateServer. Assicurarsi che il servizio Stato ASP.NET sia in esecuzione sul server remoto in cui vengono memorizzate le informazioni relative allo stato sessione. Tale servizio viene installato insieme ad ASP.NET e, per impostazione predefinita, è disponibile in %windir%\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Per ulteriori informazioni, vedere Modalità stato sessione.

NotaNota
Per migliorare la sicurezza di un'applicazione quando è attiva la modalità StateServer, utilizzare la configurazione protetta per proteggere il valore stateConnectionString mediante la crittografia della sezione della configurazione <sessionState>.

Il valore predefinito è "tcpip=127.0.0.1:42424".

stateNetworkTimeout

Attributo TimeSpan facoltativo.

Specifica il numero di secondi in cui la connessione di rete TCP/IP tra il server Web e il server di stato può essere inattiva prima che la richiesta venga annullata. Questo attributo viene utilizzato quando l'attributo mode è impostato sul valore StateServer.

Il valore predefinito è 10 secondi.

timeout

Attributo TimeSpan facoltativo.

Specifica il numero di minuti durante i quali una sessione può essere inattiva prima di essere abbandonata. L'attributo timeout non può essere impostato su un valore maggiore di 525.600 minuti (1 anno) per le modalità in-process e server di stato.

L'impostazione di configurazione timeout della sessione viene applicata solo alle pagine ASP.NET. La modifica del valore di timeout della sessione non ha effetto sul timeout della sessione per le pagine ASP. Analogamente, la modifica del timeout di sessione per le pagine ASP non ha effetto sul timeout di sessione per le pagine ASP.NET.

Il valore predefinito è 20 minuti.

useHostingIdentity

Attributo Boolean facoltativo.

Specifica se lo stato sessione ripristinerà l'identità host o utilizzerà la rappresentazione client.

Se il valore dell'attributo è true, in ASP.NET viene stabilita una connessione all'archivio dello stato sessione con una delle credenziali di processo seguenti:

  • Il processo di hosting, che corrisponde ad ASPNET per Microsoft Internet Information Services (IIS) versioni 5 e 5.1 o a SERVIZIO DI RETE per Microsoft Windows Server 2003.

  • L'identità di rappresentazione dell'applicazione, che corrisponde al momento in cui viene utilizzata la configurazione seguente:

    <identity impersonate="true" userName="dominio\nomeutente" password="password sicura" />

Se il valore è false, in ASP.NET viene stabilita una connessione all'archivio dello stato sessione con le credenziali attualmente associate al thread del sistema operativo per la richiesta corrente. Per la rappresentazione client, la connessione all'archivio dello stato sessione viene stabilita con le credenziali di sicurezza negoziate con il browser. Se il valore è false, quando viene stabilita la connessione all'archivio dello stato sessione, ASP.NET non torna all'identità del processo o all'identità di rappresentazione dell'applicazione. Per ulteriori informazioni vedere Rappresentazione ASP.NET.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è true.

NotaNota
In .NET Framework versione 1.1, se l'attributo mode è stato impostato su SQLServer ed è attivata la rappresentazione client, in ASP.NET viene eseguita la connessione al computer su cui è in esecuzione SQL Server mediante le credenziali della rappresentazione client ASP.NET.

Attributi ereditati

Attributi facoltativi.

Attributi ereditati da tutti gli elementi della sezione.

Elementi figlio

Elemento

Oggetto di descrizione

providers

Contiene un insieme di provider personalizzati per l'archivio dello stato sessione.

Elementi padre

Elemento

Oggetto di descrizione

configuration

È l'elemento di primo livello necessario in ciascun file di configurazione utilizzato in Common Language Runtime e nelle applicazioni basate su .NET Framework.

system.web

Specifica l'elemento di primo livello per le impostazioni di configurazione ASP.NET in un file di configurazione e contiene gli elementi per la configurazione di applicazioni Web ASP.NET e il controllo del comportamento delle stesse.

Note

L'elemento <sessionState> configura le impostazioni di stato sessione per l'applicazione corrente.

Quando un nuovo client inizia a interagire con un'applicazione Web, viene emesso un ID sessione che sarà associato a tutte le successive richieste da parte dello stesso client finché la sessione è valida. Questo ID viene utilizzato per mantenere lo stato lato server associato alla sessione client nel corso di più richieste. L'elemento <sessionState> controlla come questa associazione venga stabilita e mantenuta dall'applicazione ASP.NET per ogni client.

Questo meccanismo è molto flessibile e consente inoltre di ospitare le informazioni sullo stato sessione out-of-process e di tenere traccia dello stato senza utilizzare i cookie.

È possibile superare la dimensione massima dell'URI quando si inviano gli ID sessione nell'URI. Se la combinazione del ticket di identificazione anonima, del ticket di autenticazione basata su form, dell'ID di sessione e dei dati utente è maggiore della lunghezza massima consentita per l'URI, la richiesta avrà esito negativo determinando l'errore 400 - Richiesta non valida.

Per utilizzare la modalità StateServer

  1. Sul server remoto in cui verranno memorizzate le informazioni sullo stato sessione accertarsi che il servizio Stato ASP.NET sia in esecuzione.

    Questo servizio viene installato con ASP.NET e, per impostazione predefinita, si trova nel percorso %windir%\Microsoft.NET\Framework\version\aspnet_state.exe.

  2. Nel file Web.config dell'applicazione impostare l'attributo mode di "StateServer" e stateConnectionString su un valore come "tcpip=dataserver:42424".

Per utilizzare la modalità SQLServer

  1. Sul computer con SQL Server in cui verrà memorizzato lo stato sessione eseguire InstallSqlState.sql.

    Per impostazione predefinita, InstallSqlState.sql si trova nel percorso %windir%\Microsoft.NET\Framework\version.

    In questo modo vengono creati un database denominato ASPState con le nuove stored procedure e le tabelle ASPStateTempApplications e ASPStateTempSessions del database TempDB.

  2. Nel file Web.config dell'applicazione impostare l'attributo mode di "SQLServer" e sqlConnectionString su un valore come "data source=localhost;Integrated Security=SSPI;".

    NotaNota

    Per eseguire queste operazioni è possibile utilizzare Aspnet_regsql.

Per informazioni su come accedere ai valori di configurazione per l'elemento <sessionState> e modificarli nel codice dell'applicazione, vedere SessionStateSection e System.Web.SessionState.

Configurazione predefinita

L'elemento <sessionState> predefinito riportato di seguito non viene configurato in modo esplicito nel file Machine.config o nel file Web.config radice. Si tratta, tuttavia, della configurazione predefinita restituita dall'applicazione.

<sessionState 
   mode="InProc" 
   stateConnectionString="tcpip=127.0.0.1:42424" 
   stateNetworkTimeout="10" 
   sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" 
   sqlCommandTimeout="30" 
   customProvider="" 
   cookieless="UseCookies" 
   cookieName="ASP.NET_SessionId" 
   timeout="20" 
   allowCustomSqlDatabase="false" 
   regenerateExpiredSessionId="true" 
   partitionResolverType="" 
   useHostingIdentity="true">
   <providers>
      <clear />
   </providers>
</sessionState>

Esempio

Nell'esempio riportato di seguito viene illustrato come specificare diverse impostazioni di configurazione dello stato sessione.

<sessionState
   mode="SQLServer"
   cookieless="true"
   sqlConnectionString=" Integrated Security=SSPI;data source=MySqlServer;"
   sqlCommandTimeout="10" />

Informazioni sull'elemento

Gestore della sezione di configurazione

SessionStateSection

Membro di configurazione

System.Web.SessionState

Percorsi configurabili

Machine.config

Web.config a livello di radice

Web.config a livello di applicazione

Requisiti

Microsoft Internet Information Services versione 5.0, 5.1 o 6.0

.NET Framework versione 1.0, 1.1 o 2.0

Microsoft Visual Studio 2003 o Visual Studio 2005

Vedere anche

Attività

Procedura: configurare directory specifiche utilizzando impostazioni di percorso

Procedura: bloccare le impostazioni di configurazione di ASP.NET

Riferimenti

Elemento system.web (schema delle impostazioni ASP.NET)

Elemento providers per sessionState (schema delle impostazioni ASP.NET)

Elemento configuration (schema delle impostazioni generali)

System.Configuration

System.Web.Configuration

SessionStateSection

System.Web.SessionState

Concetti

Rappresentazione ASP.NET

Modalità stato sessione

Protezione dello stato sessione

Gerarchia ed ereditarietà dei file di configurazione di ASP.NET

Protezione della configurazione di ASP.NET

Scenari di configurazione ASP.NET

Altre risorse

Crittografia delle informazioni di configurazione tramite la configurazione protetta

Impostazioni di configurazione generali (ASP.NET)

Impostazioni di configurazione di ASP.NET

Amministrazione di siti Web ASP.NET

API di configurazione di ASP.NET