[asp] Gestire il download autorizzato di file e/o documenti
Una delle problematiche più diffuse quando si realizza un sito con protezione, è gestire i download di file e documenti autorizzandolo ai soli utenti abilitati o a seconda di regole personalizzate. Se i file o i documenti risiedono in una cartella del sito, facilmente vi è possibile accedervi da browser una volta “scoperto” il nome del file. Per evitare questo, è sufficiente scrivere una pagina asp che si occupi di verificare se l’utente può o meno accedere al file.
In caso affermativo, il file verrà inviato al client.
<%
Function ReadBinaryFile(FileName)Const adTypeBinary = 1'Create Stream object
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")'Specify stream type - we want To get binary data.
BinaryStream.Type = adTypeBinary
'Open the stream
BinaryStream.Open
'Load the file data from disk To stream object
BinaryStream.LoadFromFile FileName
'Open the stream And get binary data from the object
ReadBinaryFile = BinaryStream.Read
End Function
'Logica di gestione
'Verifico se l'utente può accedere al file e setto BlnOK a True o a False
BlnOK = True
If BlnOK Then
Response.Buffer = True
Response.BinaryWrite ReadBinaryFile(Session("File"))
Else
Response.Write "Errore!"
End If
%>
Utilizzando le variabili di sessione, si passa il nome del file. All’interno della sezione Logica di gestione si concede o meno il download. La funzione ReadBinaryFile leggerà dal filesystem del server il file (che può essere anche in una posizione di rete, purchè accedibile e leggibile dall’utente con cui lavora il sito su IIS) e lo invierà al client con la funzione Response.BinaryWrite.