Cosa e' ed a cosa serve il GlobalASA


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Login/Register
A cura di Davide Bianchi Per la gestione e l'inizializzazione delle variabili di "sessione" nelle applicazioni ASP si utilizza un file denominato "GLOBAL.ASA", vediamo come si usa.

Cose' il "global.asa" ?

Molte volte nel corso dello sviluppo di una applicazione ASP, ci troviamo nella condizione di dover passare molte informazioni tra una pagina e l'altra, oppure di dover 'salvare' informazioni che devono 'restare' per un certo numero di pagine.

Sono i casi di: identificativi di utente, totali di acquisto (il famigerato 'carrello'), il fatto che l'utente ha visitato una certa pagina e cosi' via.

Vi sono, ovviamente, vari modi per gestire queste informazioni ma il sistema piu' semplice e' quello di memorizzare le informazioni all'interno della memoria del Web Server. In questo modo e' possibile accedere a tali informazioni senza grossi problemi e in modo del tutto 'trasparente'.

In ASP sono disponibili a questo scopo due vie:

  • mediante le variabili di Sessione
  • mediante le variabili di Applicazione
Le variabili di Sessione sono uniche per ogni sessione (utente) che si 'attacca' al sito, questo vuol dire che due utenti possono avere variabili diverse o stesse variabili ma diversi valori, le variabili di Applicazione invece sono comuni a tutti gli utenti dello stesso sito.

Le variabili di Sessione sono mantenute nella memoria del Web Server, me per identificare il "gruppo" di variabili da usare per ogni utente si utilizza un Cookie che viene inviato al client. All'interno del cookie viene memorizzato l'identificativo di Sessione (SessionID). Questo significa in soldoni, che se l'utente ha i cookies disattivati sul browser, le variabili di Sessione non funzioneranno.

Le variabili di Applicazione sono mantenute all'interno della memoria del Web Server senza nessun particolare accorgimento.

In moltissimi casi le variabili di Applicazione o di Sessione devono essere 'inizializzate' con determinati valori nel momento in cui l'utente entra nel sito. A questo scopo e' necessario che il Web Server 'attivi' una procedura che consente di definire quali variabili e quali valori.

La procedura che il Web Server attiva e' il Global.Asa. Questi e' un file, denominato (per l'appunto) global.asa, che si deve trovare nella directory principale del sito web (root) o nella directory virtuale che rappresenta la directory principale dell'applicazione.

Se il global si trova in una directory diversa, non verra' gestito dal Web Server.

In questo senso occorre fare un po' di attenzione: fino al IIS 4, tutte le directory al di sotto della root del sito erano considerate directory virtuali, quindi un global.asa posto all'interno di una di queste 'entrava in funzione' nel momento in cui l'utente entrava in tale directory, con IIS 5 le cose sono cambiate, le directory devono essere definite virtuali 'a mano', usando il Pannello di Controllo di IIS.

Cosa si mette nel "global.asa" ?

Il global.asa puo' contenere una serie di funzioni solitamente quelle utilizzate sono quelle che vengono fatte partire automaticamente dal Web Server quando l'utente accede al sito o all'applicazione.

Queste funzioni sono chiaamte:

  • Session_OnStart()
    Viene eseguita automaticamente quando l'utente si collega al sito.
  • Session_OnEnd()
    Viene eseguita quando l'utente si disconnete dal sito o dopo un certo tempo di inattivita' dell'utente.
  • Application_OnStart()
    Viene eseguita automaticamente quando il primo utente entra nella directory dell'applicazione.
  • Application_OnEnd()
    Viene eseguita automaticamente quando l'ultimo utente lascia la directory dell'applicazione.
Un tipico esempio di Global.asa e' il seguente:


In questo caso sono state definite due variabili di Sessione e due di Applicazione.

La sintassi per definire le variabili di Applicazione e quelle di Sessione e' molto simile come si vede.

Se il global.asa non funziona ?

Ci possono essere vari motivi per cui il global.asa non viene eseguito, i principali sono:
  1. la directory in cui si trova il global.asa non ha i permessi di esecuzione degli script
  2. la directory in cui si trova il global.asa non e' una directory 'virtuale'
  3. non si e' scritto il file in modo coerente (nomi delle sub)
  4. il proprio Web Server non interpreta il codice ASP
Se il problema e' l'ultimo dell'elenco, occorre verificare cosa manca sul proprio Web Server per avere il funzionamento del codice ASP.

Se il codice ASP funziona e tutto il resto e' a posto, puo' darsi che il problema sia nel fatto che si stanno usando variabili di Sessione ma nel proprio browser si hanno disattivati i Cookies.

Come gia' detto le variabili di sessione funzionano tramite i cookie, se questi sono disattivati tali variabili non funzionano.


I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

Nessun messaggio this document does not accept new posts

Precedente Successivo


Davide Bianchi, lavora come Unix/Linux System Administrator presso una societa' di "sicurezza informatica" (aka: $networkgestapo) di Haarlem. Contatti: mail: davide AT onlyforfun.net , Jabber: davideyeahsure AT gmail.com,


Volete contribuire? Leggete come!.
 
 

Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gort