Classe SessionStateSection
Configura lo stato sessione per un'applicazione Web.
Sintassi
class SessionStateSection : ConfigurationSectionWithCollection
Metodi
Nella tabella seguente sono elencati i metodi esposti dalla SessionStateSection
classe .
Nome | Descrizione |
---|---|
Aggiungere | Ereditato da ConfigurationSectionWithCollection. |
Cancella | Ereditato da ConfigurationSectionWithCollection . |
Recupero | Ereditato da ConfigurationSectionWithCollection . |
GetAllowDefinition | Ereditato da ConfigurationSection. |
GetAllowLocation | Ereditato da ConfigurationSection . |
Rimuovi | Ereditato da ConfigurationSectionWithCollection . |
RevertToParent | Ereditato da ConfigurationSection . |
SetAllowDefinition | Ereditato da ConfigurationSection . |
SetAllowLocation | Ereditato da ConfigurationSection . |
Proprietà
Nella tabella seguente sono elencate le proprietà esposte dalla SessionStateSection
classe .
Nome | Descrizione |
---|---|
AllowCustomSqlDatabase |
Valore di lettura/scrittura boolean . true se l'utente è autorizzato a specificare il valore del catalogo iniziale nella SqlConnectionString proprietà; in caso contrario, false . Il valore predefinito è false . |
Cookieless |
Valore di lettura/scrittura sint32 che configura il modo in cui vengono usati i cookie per identificare le sessioni client. I valori possibili sono elencati più avanti nella sezione Osservazioni. Nota: Esistono due modi in cui lo stato della sessione può archiviare l'ID univoco che associa il client a una sessione server: archiviando un cookie HTTP nel client o codificando l'ID sessione nell'URL. L'archiviazione dell'ID sessione nel cookie è più sicura, ma richiede al browser client di supportare i cookie. Per le applicazioni che consentono ai client che non supportano i cookie, ad esempio un'ampia gamma di dispositivi mobili, l'ID sessione può essere archiviato nell'URL. L'opzione URL presenta diversi svantaggi. È necessario che i collegamenti nel sito siano relativi e che la pagina venga reindirizzata all'inizio della sessione con nuovi valori di stringa di query. Espone anche l'ID sessione nella stringa di query, in cui può essere usato in un attacco di sicurezza. È consigliabile usare la modalità senza cookie solo se è necessario supportare i client che non supportano il supporto dei cookie. |
CookieName |
Valore di lettura/scrittura string che specifica il nome del cookie HTTP da usare per l'identificazione della sessione. Il valore predefinito è "ASP.NET_SessionId". |
CustomProvider |
Valore di lettura/scrittura string che specifica il nome di un provider personalizzato dalla Providers proprietà utilizzata quando la Mode proprietà è impostata su Custom . |
Location |
Ereditato da ConfigurationSection .) Proprietà chiave. |
Mode |
Valore di lettura/scrittura sint32 che specifica dove archiviare lo stato della sessione. I valori possibili sono elencati più avanti nella sezione Osservazioni. Nota: La Mode proprietà non è obbligatoria e può essere ereditata da un livello superiore nella gerarchia di configurazione o dal valore predefinito. Tuttavia, il gestore di configurazione scriverà sempre la modalità in base al valore ereditato corrente per la sezione. |
PartitionResolverType |
Valore di lettura/scrittura string contenente il nome completo del tipo resolver che partiziona i dati dello stato della sessione in più nodi back-end quando la Mode proprietà è impostata su SQLServer o StateServer . Nota: Se questa proprietà è specificata, le SqlConnectionString proprietà e StateConnectionString vengono ignorate. La stringa di connessione restituita da PartitionResolverType verrà usata in ogni richiesta per connettersi al percorso del server appropriato per il resto della richiesta. Se la stringa di connessione non è valida, ASP.NET genererà la stessa eccezione generata quando la stringa di connessione configurata al server non è valida. |
Path |
Ereditato da ConfigurationSection .) Proprietà chiave. |
Providers |
Valore ProviderSettings che contiene il nome e il tipo di provider che eseguono servizi correlati allo stato sessione. |
RegenerateExpiredSessionId |
Valore di lettura/scrittura boolean . true se l'ID sessione viene rigenerato quando viene specificato un ID sessione scaduto dal client; in caso contrario, false . Il valore predefinito è false . Nota: Per impostazione predefinita, solo gli URL senza cookie vengono ripubblicati quando questa proprietà è abilitata. |
SectionInformation |
Ereditato da ConfigurationSection . |
SessionIDManagerType |
Valore di lettura/scrittura string che specifica il tipo completo della gestione ID sessione. |
SqlCommandTimeout |
Valore di lettura/scrittura datetime che specifica il timeout per i comandi SQL che usano la modalità SQL Server stato sessione. Il valore predefinito è 30 secondi. |
SqlConnectionString |
Valore di lettura/scrittura string contenente la stringa di connessione a un SQL Server. Il valore predefinito è "data source=localhost;Integrated Security=SSPI". Questa proprietà è necessaria quando la Mode proprietà è impostata su SQLServer . |
StateConnectionString |
Valore di lettura/scrittura string che specifica il nome e la porta del server quando lo stato della sessione viene archiviato in remoto. Il valore predefinito è "tcpip=loopback:42424". Questa proprietà è necessaria quando la Mode proprietà è impostata su StateServer . Nota: Assicurarsi che il servizio di stato ASP.NET sia in esecuzione nel server remoto che archivia le informazioni sullo stato della sessione. Questo servizio viene installato con ASP.NET e si trova per impostazione predefinita in [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Per impostazione predefinita, questo servizio è configurato per l'avvio manuale. È necessario modificare il comportamento di avvio in Automatico. |
StateNetworkTimeout |
Valore di lettura/scrittura datetime che specifica l'ora, in secondi, che la connessione di rete tra il server Web e il server di stato può rimanere inattiva prima che la sessione venga abbandonata. Questa proprietà è necessaria quando la Mode proprietà è impostata su StateServer . Il valore predefinito è 10 secondi. |
Timeout |
Valore di lettura/scrittura datetime che specifica l'ora, in minuti, dopo la scadenza della sessione a causa dell'inattività. Il valore predefinito è 20 minuti. Nota: Non è possibile impostare la Timeout proprietà su un valore maggiore di 525.601 minuti (1 anno). |
UseHostingIdentity |
Valore di lettura/scrittura boolean . true se autenticazione di Windows e l'identità del processo host (ASP.NET o un'identità del servizio Windows) sono abilitate per le connessioni remote. false Se lo stato della sessione usa la rappresentazione client quando è disponibile. Il valore predefinito è true . Nota: Questa impostazione semplifica la gestione dell'autenticazione di Windows integrata concedendole l'accesso al database solo al processo di lavoro ASP.NET o all'identità dell'applicazione e non all'intero dominio o a un set di utenti di dominio. |
Sottoclassi
Questa classe non contiene sottoclassi.
Commenti
Quando un nuovo client inizia a interagire con un'applicazione Web, viene emesso un ID sessione e associato a tutte le richieste successive dello stesso client durante il periodo di validità della sessione. Questo ID viene usato per mantenere lo stato lato server associato alla sessione client tra le richieste. La SessionStateSection
classe controlla il modo in cui l'applicazione ASP.NET stabilisce e gestisce questa associazione per conto di ogni client.
Nella tabella seguente sono elencati i valori possibili per la Cookieless
proprietà. Il valore predefinito è 1 (UseCookies
).
Valore | Parola chiave | Descrizione |
---|---|---|
0 | UseUri |
L'ID sessione viene incorporato come stringa di query nella richiesta URI (Uniform Resource Identifier) e l'URI viene reindirizzato all'URL richiesto originariamente. La richiesta URI modificata viene usata per la durata della sessione, quindi non è necessario alcun cookie. Nota: Quando si usa la UseUri modalità, è necessario impostare la RegenerateExpiredSessionId proprietà su true . Ciò consente a un server Web di scadere e rigenerare i token, che offre un potenziale utente malintenzionato meno tempo per acquisire un cookie e ottenere l'accesso al contenuto del server Web. È anche consigliabile modificare la Timeout proprietà in meno del valore predefinito di 20 minuti. |
1 | UseCookies |
L'ID sessione viene archiviato in un cookie HTTP nel client per la durata della connessione di un utente a un sito Web. I cookie vengono passati nelle intestazioni HTTP di tutte le richieste tra un client e un server Web e sono più efficienti nello stato della sessione di rilevamento perché non richiedono il reindirizzamento. Inoltre, mantengono lo stato se un utente lascia un sito per visitare un altro e quindi torna al sito originale. Nota: Prendere in considerazione la modifica della Timeout proprietà a meno del valore predefinito di 20 minuti in modo che un potenziale utente malintenzionato abbia meno tempo per acquisire un cookie e ottenere l'accesso al contenuto del sito Web. |
2 | AutoDetect |
L'ID sessione viene archiviato in un cookie HTTP nel client solo dopo un handshake con il browser verifica che un cookie possa essere archiviato. Nota: Quando si usa la AutoDetect modalità, è necessario impostare la RegenerateExpiredSessionId proprietà su true . Ciò consente a un server Web di scadere e rigenerare i token, che offre un potenziale utente malintenzionato meno tempo per acquisire un cookie e ottenere l'accesso al contenuto del server Web. È anche consigliabile modificare la Timeout proprietà in meno del valore predefinito di 20 minuti. |
3 | UseDeviceProfile |
L'ID sessione viene archiviato in un cookie HTTP nel client se il profilo del dispositivo client supporta i cookie; in caso contrario, non vengono usati cookie. Se il profilo del dispositivo supporta i cookie, verranno usati anche se l'utente ha disabilitato il supporto dei cookie. Usare questa impostazione per assicurarsi che gli ID senza cookie vengano usati solo con i client che li richiedono (ad esempio, browser per dispositivi mobili). Nota: Quando si usa la UseDeviceProfile modalità, è necessario impostare la RegenerateExpiredSessionId proprietà su true . Ciò consente a un server Web di scadere e rigenerare i token, che offre un potenziale utente malintenzionato meno tempo per acquisire un cookie e ottenere l'accesso al contenuto del server Web. È anche consigliabile modificare la Timeout proprietà in meno del valore predefinito di 20 minuti. |
Nella tabella seguente sono elencati i valori possibili per la Mode
proprietà. Il valore predefinito è 1 (InProc
).
Valore | Parola chiave | Descrizione |
---|---|---|
0 | Off |
Lo stato sessione è disabilitato. |
1 | InProc |
Lo stato della sessione viene archiviato per un'applicazione ASP.NET nel processo di lavoro in cui viene eseguita l'applicazione. Lo stato della sessione in-process è la modalità di archiviazione predefinita più veloce. Tuttavia, man mano che si archiviano più dati in una sessione, si utilizza una maggiore memoria server Web, che può rallentare le prestazioni. Se il processo di lavoro ricicla i dati sullo stato della sessione in-process viene perso. Se le applicazioni ASP.NET devono conservare i dati sullo stato della sessione e la velocità di accesso ai dati non è una preoccupazione primaria, valutare l'uso di una modalità di stato sessione non elaborata per l'archiviazione dei dati. Lo stato della sessione in-process non può essere usato in una web farm senza uno schema di affinità ID sessione che garantisce che tutte le richieste con un DETERMINATO ID sessione vengano indirizzate allo stesso server Web. Nota: Il servizio ASP.NET stato (Aspnet_state.exe) deve essere in esecuzione per la funzione dello stato della sessione in-process. Questo servizio viene installato con ASP.NET e si trova per impostazione predefinita in [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe. Per impostazione predefinita, questo servizio è configurato per l'avvio manuale. È necessario modificare il comportamento di avvio in Automatico. |
2 | StateServer |
Lo stato della sessione usa il servizio di ASP.NET stato out-of-process per archiviare le informazioni sullo stato. Il vantaggio di questa configurazione è che lo stato della sessione viene mantenuto quando il processo di lavoro dell'applicazione ricicla. Se si usa questa impostazione, è necessario specificare una stringa di connessione nella StateConnectionString proprietà . |
3 | SQLServer |
Lo stato della sessione usa un database di SQL Server out-of-process per archiviare le informazioni sullo stato. Il vantaggio di questa configurazione è che lo stato della sessione viene mantenuto quando il processo di lavoro dell'applicazione viene riciclato o se il servizio stato ASP.NET o il server Web viene disattivato. Se si usa questa impostazione, è necessario specificare una stringa di connessione nella SqlConnectionString proprietà . Nota: Per usare la SQLServe modalità r session-state, è necessario eseguire lo script InstallSqlState.sql SQL (installato in [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber come parte dell'installazione predefinita di .NET Framework) nel computer che esegue SQL Server che archivierà lo stato della sessione. Questo crea un database denominato ASPState con nuove stored procedure e crea nuove tabelle ASPStateTempApplications e ASPStateTempSessions nel database TempDB. |
4 | Custom |
Lo stato della sessione usa un archivio dati personalizzato per archiviare le informazioni sullo stato della sessione. Se si usa questa impostazione, è necessario specificare il nome del provider personalizzato nella CustomProvider proprietà. |
Gerarchia di ereditarietà
ConfigurationSectionWithCollection
SessionStateSection
Requisiti
Tipo | Descrizione |
---|---|
Client | - IIS 7.0 in Windows Vista - IIS 7.5 in Windows 7 - IIS 8.0 in Windows 8 - IIS 10.0 in Windows 10 |
Server | - IIS 7.0 in Windows Server 2008 - IIS 7.5 in Windows Server 2008 R2 - IIS 8.0 in Windows Server 2012 - IIS 8.5 in Windows Server 2012 R2 - IIS 10.0 in Windows Server 2016 |
Prodotto | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 |
File MOF | WebAdministration.mof |
Vedere anche
System.Web.Configuration.SystemWebSectionGroup.SessionState
Classe System.Web.SessionState.SessionStateModeConfigurationSectionWithCollection
Classe ProviderSettings
Gestione dello stato della sessione veloce, scalabile e sicura per le applicazioni Web