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