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.
Nota
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:
Nota
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.
Nota
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:
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.
Nota
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
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.
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
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.
Nel file Web.config dell'applicazione impostare l'attributo mode di "SQLServer" e sqlConnectionString su un valore come "data source=localhost;Integrated Security=SSPI;".
Nota 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 |
|
Membro di configurazione |
|
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)
Concetti
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