3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Come funziona il tutto
Come già detto, il FileSession viene gestito da un modulo. L'elaborazione di ogni singola pagina in ASP.NET è frutto dell'elaborazione di moduli, che ad esempio gestiscono l'autenticazione, le autorizzazioni, la gestione della cache, il controllo di errori. La loro potenza sta nel fatto di poter controllare la richiesta di ogni singola pagina sia nella fase iniziale che in quella finale.
public class myHttpModule:IHttpModule
{
public void Init(HttpApplication app)
{
app.BeginRequest+=new EventHandler(PersonalRequest.StartRequest);
app.EndRequest+=new EventHandler(PersonalRequest.EndRequest);
}
public void Dispose() {}
}La funzione "StartRequest" presente nella classe "PersonalRequest" sarà eseguita all'inizio della richiesta di pagina, e "EndRequest" alla fine dell'elaborazione della pagina:

Vediamo nel dettaglio le operazioni eseguite da queste due funzioni per lo svolgimento di tutte le operazioni necessarie al corretto funzionamento del modulo.
Personal.StartRequest
Inizialmente la richieste viene processata da " StartRequest " che verifica se è presente il nostro "sid" e il relativo valore tra i pametri GET della pagina. Se non è presente significa che la pagina è la prima visitata dall'utente, e viene creato un nuovo identificativo di sessione grazie alla funzione:
sid=Guid.NewGuid().ToString()Guid.NewGuid() restituisce una stringa alfanumerica univoca a 128 bit (2^128 = 3,40e+38), garantendoci dunque un buon margine di sicurezza.
Se l'identificativo di sessione è presente come parametro, viene inizialmente verificato che esista come file nella directory predefinita per questi file (directory selezionata nel web.config come prima visto). Se non presente, viene creato un nuovo identificativo di sessione come sopra, altrimenti viene letto il suo contenuto e inserito nella classe _filesession, che è la classe in cui vengono memorizzate tutte le informazioni sull'utente come il suo nome, la role a cui appartiene, se è stato autenticato, e i relativi dati di sessione. Il contenuto di questa classe viene "agganciato" alla richiesta attuale in modo da poter essere gestita da qualsiasi evento della richiesta:
HttpContext.Current.Items["FileSession"]=fs;L'esecuzione della pagina
Successivamente viene elaborato il codice della pagina ASP.NET.
Nella dll inclusa nella cartella \bin\, oltre al modulo, alla classe per la lettura della sezione personalizzata del web.config, è presente una classe, di nome "FS", con funzioni statiche per accedere a questo nuovo oggetto.
Funzione | Esempio |
|---|---|
FS.Visitatori : resituisce il numero di utenti presenti nel sito | dim utenti as integre=FS.Visitatori |
FS.Read : legge il contenuto dal FileSession | dim nome as string=FS.Read("nome") |
FS.Count : ritorna il numero di dati presenti nel FileSession | |
FS.Exist : verifica se è presente un oggetto nella FileSession | if FS.Exist("nome")=true then |
FS.Remove : cancella un oggetto dal FileSession | FS.Remove("nome") |
FS.SessionID : restituisce l'identificativo di sessione dell'utente attuale | dim id as string=FS.SessionID |
FS.SetAuthCookie : imposta l'autenticazione personalizzata | FS.SetAuthCookie("Andrea") |
FS.SignOut() : cancella l'autenticazione | |
FS.GetRedirectUrl() : restituisce la pagina che ha richiamato la pagina di login | Response.Redirect(FS.GetRedirectUrl()) |
FS.RedirectFromLoginPage : come la funzione in FormsAuthentication, imposta l'autenticazione ed esegue il redirect alla pagina che ha richiamato la pagina di login | FS.RedirectFromLoginPage() |
FS.Authenticate : controlla l'utente e la password con quelle presenti nella sezione | if FS.Authenticate("andrea","mia_password") then |
FS.UserName : ritorna il nome dell'utente attuale | |
FS.Role : ritorna la role dell'utente attuale | |
FS.IsAuthenticated : ritorna un valore booleano (true/false), che indica se l'utente attuale è autenticato o meno |
3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Difficoltà

Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!