Cancellare cartella dinamica su chiusura finestra

martedì 25 gennaio 2011 - 16.47
Tag Elenco Tags  C#  |  VB.NET  |  .NET 2.0  |  Internet explorer 8.0

e.disanto Profilo | Junior Member

Salve ragazzi,
spiego brevemente il mio problema...
Nel momento in cui l'utente carica la mia pagina web, il sistema in automatico crea una cartella chiamata con il nome dell'ID della sessione utente.
Quello che mi servirebbe è che alla chiusura della pagina la cartella creata venga cancellata (per evitare di trovarmi il server pieno di cartelle temporanee).
Come posso procedere?!? Ho provato anche a configurare il file global.asax con l'evento Session_End, ma nulla, la cartella non viene cancellata :(
Grazie mille

Ernesto di Santo

alx_81 Profilo | Guru

>Salve ragazzi,
Ciao

>Nel momento in cui l'utente carica la mia pagina web, il sistema
>in automatico crea una cartella chiamata con il nome dell'ID
>della sessione utente.
>Quello che mi servirebbe è che alla chiusura della pagina la
>cartella creata venga cancellata (per evitare di trovarmi il
>server pieno di cartelle temporanee).
>Come posso procedere?!? Ho provato anche a configurare il file
>global.asax con l'evento Session_End, ma nulla, la cartella non
>viene cancellata :(
non mi legherei alla sessione del web, che, per antonomasia, è stateless. Direi invece di scrivere su server (anche a database se vuoi) la login dell'utente con un token particolare persistito e la data.
Ogni operazione sensibile va a scrivere su server l'aggiornamento della data su questa struttura, una sorta di "keep alive". Un processo, sempre su server, scorre la lista dei token, e se l'utente è inattivo da più di "X tempo" cancelli la cartella corrispondente (che ad esempio può corrispondere al token generato, o all'id di sessione appunto). E' più macchinoso, ma anche più sicuro. Il web non può gestire questo tipo di operazioni non avendo uno stato.

>Grazie mille
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

e.disanto Profilo | Junior Member

Ciao Alessandro,
prima di tutto grazie per la risposta, però ci sono 2 problemi:
1) sul server non utilizzo DB o Login, è una pagina accessibile a tutti (troppo luingo spiegarti il motivo...)
2) è uno spazio web su aruba, per cui non ho possibilità di avviare processi o altre cose troppo "invasive"...
Non c'è proprio modo di farlo controllando lo stato sessione in qualche modo?

Ernesto di Santo

alx_81 Profilo | Guru

>Ciao Alessandro,
>prima di tutto grazie per la risposta, però ci sono 2 problemi:
>1) sul server non utilizzo DB o Login, è una pagina accessibile a tutti (troppo luingo spiegarti il motivo...)
ok, ma puoi anche usare un file xml, senza db o altro, alla fine hai l'id di sessione comunque come chiave

>2) è uno spazio web su aruba, per cui non ho possibilità di avviare processi o altre cose troppo "invasive"...
>Non c'è proprio modo di farlo controllando lo stato sessione in qualche modo?
Diciamo che puoi farlo spostando l'approccio al "caricamento successivo". Mi spiego meglio:
- ogni primo login crea un record in un file xml che contiene quanto ti dicevo nel post precedente
- ogni operazione sensibile va a popolare o aggiornare il file xml
- ogni login va a controllare se vi sono nodi "obsoleti" ed, in tal caso, cancella le folder identificate dai nodi dell'xml ed i nodi stessi

Così, il processo è implicitamente creato per ogni login.
Che ne pensi?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5