FileSession 2
In questo lab ho inserito la nuova versione del FileSession, modulo già mostrato in questo articolo con spiegazioni del suo funzionamento, e la sua implementazione in un carrello elettronico presente a questo link. Le potenzialità di questo modulo sta nella sua gestione delle Session direttamente su file; questo consente di mantenere lo stato di ogni singolo utente anche in caso di riciclo dei processi dell'IIS o ad un aggiornamento al sito. Inoltre, l'identificatore di sessione viene inserito direttamente nell'url della pagina, e questo consente di identificare ogni singolo utente anche nel caso al browser siano stati disabilitati i cookies. Per implementare questo modulo è sufficiente inserire nel web.config della propria web-application questa sezione:
<configuration> <configSections> <section name="FileSession" type="PersonalConfig,FileSessionHttpModule" /> </configSections> <FileSession timeout="10" checkFileTime="2" defaultDirectory="~/Session" autoInsertSid="true" loginUrl="login.aspx" excludeDirectory="directory1,directory2" insertSid="Request" /> <system.web> <httpModules> <httpModules> <add type="myHttpModule,FileSessionHttpModule" name="FileSessionHttpModule" /> </httpModules> </httpModules> ... </system.web> </configuration>
In questa seconda versione del FileSession sono state aggiunte due voci nella sezione di configurazione:
- excludeDirectory
- insertSid
In excludeDirectory è possibile inserire le cartelle le cui pagine asp.net non devono essoro elaborate dal FileSession. Questa possibilità è stata implementata dopo dei test effettuata con alcuni dispositivi mobili con cui ho riscontrato problemi con il FileSession.
insertSid è la grande novità di questa versione. Accetta due valori:
- Forever
- Request
Con la prima impostazione il FileSession funziona come nella versione precedente: alla prima richiesta di una pagina asp.net della nostra web-application, sarà aggiunto immediatamente l'identificatore di sessione all'url della pagina e sarà creato per essa un file sul server per la memorizzazione dei suoi dati. Con "Request" non sarà inserito nessuna modifica all'url, non sarà creato nessun file sul server e modificato l'output della pagina per l'inserimento del "sid" ad ogni link presente fino al primo reale utilizzo del FileSession con la scrittura di dato di Sessione. Questo permette maggiori prestazioni e minore uso della memoria e risorse del server: il modulo entrerà in azione solo dal primo reale utilizzo.
L'allegato che potete scaricare qui contiene il codice sorgente del modulo e l'esempio già presentato nel tutorial su aspitalia.com con l'implementazione dell'insertSid. Per maggiori informazioni invito a leggere i due articoli presentati all'inzio.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Aumentare la scalabilità di ASP.NET Core Web API con caching client side
Costruire un client HTTP tipizzato con Refit e IHttpClientFactory in ASP.NET Core 2.1
Usare LibMan per gestire le dipendenze client in ASP.NET Core
Mappare più applicazioni ASP.NET Core su un proxy NGINX
Personalizzare ASP.NET Core Identity
Migliorare le performance di ASP.NET Core 2.2 su IIS
Anteprima di ASP.NET Core 2.1 - Parte 2
Usare NGINX come reverse proxy di ASP.NET Core
Visual Studio 2017 e il supporto a Docker per ASP.NET Core
Migrare un progetto esistente da ASP.NET Core 2.0 a 2.1
Verificare lo stato di funzionamento dell'applicazione con ASP.NET Core 2.2
Ottimizzare il codice per le richieste HTTP tramite IHttpClientFactory in ASP.NET Core 2.1