631 messaggi dal 21 marzo 2008
Ciao a tutti
sto realizzando un applicazione per la gestione di tickets. Voglio dare la possibilità ad un utente di allegare dei file.
Non voglio salvare i file in un db(uso mysql), ma voglio salvarli in una directory.
Come faccio ad avitare che un utente non loggato acceda al file?
Oppure è possibile nascondere il percorso del file quando si esegue il download?
Grazie
Per evitare che un utente non loggato acceda alla cartella devi inserire la protezione nel web.config
<location path="myDir"> 
    <system.web> 
      <authorization> 
        <deny users="?" /> 
      </authorization> 
    </system.web> 
  </location> 
Per il secondo quesito potresti ad esempio, rinominare il file utilizzando un guid ottenendo ad esempio: 19565278-BFD8-431C-8B03-C210C3BA6ED7.ext

Fabrizio Canevali
631 messaggi dal 21 marzo 2008
Grazie mille
di nulla

Fabrizio Canevali
My two cents:

fabrica ha scritto:
Per evitare che un utente non loggato acceda alla cartella devi inserire la protezione nel web.config

Fai attenzione che per default la protezione funziona solo per i file mappati su ASP.NET (aspx, ascx, asmx, cs, vb, ecc.) e non sugli altri (gif, jpg, html, doc, pdf, ecc.)

fabrica ha scritto:
potresti ad esempio, rinominare il file utilizzando un guid ottenendo ad esempio: 19565278-BFD8-431C-8B03-C210C3BA6ED7.ext

"Security through obscurity" non è sufficiente: non basta "nascondere" il nome del file per renderlo inaccessibile. La soluzione migliore è quella di salvare i file in un percorso non raggiungibile via http (in una posizione su disco fuori dal sito web o in una cartella senza accesso in lettura, come App_Data) e "servirli" (=leggerne lo stream e mandarlo in risposta al client) mediante un apposito HttpHandler (che ad esempio può preventivamente verificare le credenziali dell'utente, monitorare la frequenza di download, applicare restrizioni per ip, ecc.)

HTH

Matteo Casati
GURU4.net
@Matteo - quoto anche se, molto spesso, in hosting non si hanno tutte queste "opzioni".
Imho, considerando che gli HttpHandler, svolgono una funzione "molto simile" a quella dei filtri ISAPI di IIS, costituiscono di fatto, l'unica possibilità di essere gestiti direttamente dall'applicazione web, senza dover configurare IIS.
Modificato da fabrica il 16 luglio 2010 19.31 -

Fabrizio Canevali
Parzialmente vero: App_Data o comunque una directory per il database (tipicamente Access) con i diritti di scrittura (ma non di lettura!) è tendenzialmente sempre presente...

Matteo Casati
GURU4.net
[OT] Di solito anche Sneijder è tendenzialmente presente :D

ROTFL !

Fabrizio Canevali

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano

I più letti di oggi

Media
In evidenza
MISC