- ASP .Net Session: configurazione e uso - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download | Chiedi sul FORUM | Glossario | conoscenza dell'HTML - un web server che supporti la tecnologia ASP .NET | ||
Le sessioni in ASP .Net: un login e come configurarle | |||
UN LOGIN CON SESSIONE Un semplice esempio di utilizzo delle sessioni: un form di login
Una delle maggiori necessità di chi programma su web è indubbiamente
quella di superare l'ostacolo del fatto che HTTP è un protocollo
state-less, ovvero in cui ogni richiesta è considerata singola e
indipendente. Entra così in gioco il concetto di sessione, che nella sua
forma più semplice indica un lasso di tempo che inizia all'arrivo di un
utente su una qualunque pagina ASP .Net e termina con la sua dipartita
dal sito.
Ad una sessione è possibile associare una serie di dati riguardanti un singolo utente,
accessibili per tutta la durata della sessione da qualunque pagina. <%@ Page Language="VB" %> <script language="VB" runat="server"> Sub Page_Load(obj As Object, e As EventArgs) If Request("user") = "Carlo" And Request("pass") = "segreta" Then Session("user") = Request("user") Response.Redirect("conferma.aspx") End If End Sub </script> <form action="login.aspx"> Nome utente: <br> <input type="text" name="user" value="Carlo"> <br> Password: <br> <input type="password" name="pass" value="segreta"> <br> <input type="submit" value="Login!"> </form> e conferma.aspx: <%@ Page Language="VB" %> Login effettuato con successo! <br> Bentornato <% =Session("user") %> Come si può vedere l'utilizzo delle sessioni è davvero semplice: per impostare un valore è sufficiente utilizzare la sintassi Session("identificativo") = Valore e in seguito per richiamarlo (anche in un'altra pagina) Response.Write(Session("identificativo"))
Si badi che Valore non deve per forza essere una stringa come
nell'esempio sopra, ma può essere un qualsiasi oggetto. Session è un oggetto che fa
parte del contesto della pagina, e quindi accessibile sempre senza
problemi, di tipo System.Web.SessionState.HttpSessionState. Session.Abandon() Richiamare questo metodo cancellerà tutti i dati memorizzati e farà terminare la sessione.
CONFIGURAZIONE DELLE SESSIONI IN ASP.NET
Ma se HTTP è un protocollo state-less, come si può determinare se una
richiesta proviene da uno stesso utente? Uno dei metodi è quello di
modificare gli URL di tutto il sito aggiungendo un identificativo
univoco della sessione (ad esempio
http://www.arcadiaclub.com/id{idUnivocoAlfaNumerico239}/pagina.aspx,
oppure http://www.arcadiaclub.com/pagina.aspx?session=idUnivocoAlfaNumerico239),
ma, nonostante ASP .Net permetta di applicare questo metodo senza troppa
fatica, la sua
adozione è fortemente sconsigliabile per via dei problemi che riguardano
i link, i quali vengono riscritti automaticamente (e spesso in
maniera imprecisa) da ASP .Net. <configuration> <system.web> <sessionState timeout="20" cookieName="ASP.NET_SessionId" cookieless="[true|false|AutoDetect|UseCookies|UseUri]" mode="[Off|InProc|StateServer|SQLServer|Custom]" /> </system.web> </configuration>
Nota: sono stati qui riportati solamente gli attributi più utili
e frequentemente usati. Session.Timeout = 20 'Tempo in minuti
L'attributo cookieName permette di impostare il nome del cookie
sotto il quale sarà memorizzato l'identificativo della sessione. |
|||
<< INDIETRO | by VeNoM00 |