Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'architettura dell' ASP object model

La struttura del file global.asa.
La struttura del file global.asa.
Link copiato negli appunti

Prima che continuamo a saltare troppo di palo in frasca, facciamo un passo indietro e guardiamo a come un'applicazione scritta con ASP funziona nella sua completezza.

Quando accediamo per la prima volta ad un file asp, IIS guarda nella directory root per vedere se trova un file chiamata global.asa (Active Server Application).
È questo file che ci permette di controllare due degli oggetti più importanti di ASP: l'Application e il Session.

Se ricordi, al principio di questo tutorial abbiamo parlato del fatto che il protocollo HTTP è senza memoria. L'oggetto Request ci ha aiutato un po' a mantenere la memoria ma solo da una pagina all'altra. Si potrebbe dire che l'oggetto Request è un po' la memoria corta. Beh, l'Application e il Session sono la memoria lunga. Per essere ancora più precisi, nell'universo di IIS, il Session è la memoria lunga che rimane in vita finchè rimane in vita la tua connessione, mentre l'Application è il codice genetico che rimane in vita per tutti, finchè l'universo di IIS continua. 

Come vedi, in questa metafora tu hai un potere enorme e in realtà sei tu che decidi come questo universo funziona o non funziona.

Il Global.asa ha 4 events principali. Eccone uno standard

<script LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
End Sub
Sub Application_OnEnd
End Sub
Sub Session_OnStart
End Sub
Sub Session_OnEnd
End Sub
</script>

Per esempio se definiamo una variabile di scopo Application così:

<%
Sub Application_OnStart
Set application("connection_string") = "DSN=lamiadb;uid=sa;pwd="
Set Application("immagini_path") = "C:MyWebRootMywebsiteASPtutorialimmagini"
End Sub
%>

In qualunque delle mie pagine, posso scrivere

<%
connection_string = Application("connection_string") 
'per ottenere la mia stringa di connessione all database
immagini_path = Application(("immagini_path") 
'per ottenere il directory dove sono le mie immagini
%>

e queste variabili rimangono valide finché noi stessi uccidiamo l'applicazione o fermiamo IIS.

Un altro esempio. Nel global.asa durante Session OnStart event, definiamo:

<%
Sub Application_OnStart
Set Session("login") = False
End Sub
%>

Potremmo adoperarla in tutte le pagine nel nostro sito per controllare se il cliente ha l'autorizzazione per vedere la pagina. Come? Così:

<%
If Session ("login") = False then
Il cliente non si è autenticato
Messaggio: mi dispiace ma qui non puoi venire
Else
Il cliente si è autenticato
Lascia entrare e mostra la pagina
End if
%>

Naturalmente questo presume che tu abbia un meccanismo per permettere che il cliente effettui il login nel tuo sito e che il tuo codice cambi lo stato della variabile (Set Session ("login") = True) quando il login è avvenuto correttamente.

Nell'oggetto Session la durata delle variabili è valida fino a quando non chiudi il tuo browser, oppure, se non hai attività, IIS chiude di solito la sessione dopo 30 minuti.

Un esempio pratico che puoi applicare subito.
Diciamo che tu hai un sito dove è importante che i tuoi clienti entrino da una pagina specifica che vuoi tu e non da dove loro hanno messo un bookmark:
Facile, lo facciamo con il Response:

Sub Session_OnStart
Response.Redirect "C:MyWebRootMyWebSitebuongiorno.asp"
end sub

Appena la Session comincia, cioè quando qualcuno entra nel sito attraverso il suo bookmark, IIS spara l'azione Session_OnStart che ti ridirige esattamente dove vuoi tu.

C'è chi dice che l'internet mette sempre più potere nelle mani dei clienti ma non certo con noi programmatori. Abbiamo sempre tutto sotto controllo ;o)


Ti consigliamo anche