Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    11

    [vb2010 asp net]Problema con il download dei files

    Salve a tutti!!!!
    Spero di essere nella sezione giusta!
    Vi spiego il mio pproblema:
    sto creando una piccola applicazione web per una azienda dove ogni dipendente ha la possibilità di accedervi attraverso l'uso delle proprie credenziali.
    All'interno del mio progetto ho creato una cartella Cedolini dove all'interno vengono messi i cedolini dei vari dipendenti!
    Come gestisco il fatto che un dipendente può vedere solo il proprio cedolino e non quello degli altri?
    Creare una cartella per ogni dipendente non mi sebra efficente.
    in poche parole vorrei creare una pagina asp dove all'interno vengono visualizzati tutti i cedolini con possibilità di scaricarli.
    Attendo consigli!
    Ciaoo

  2. #2
    Ci sono due strade:
    -se vuoi continuare a gestire la problematica a livello di file system (gestendo quindi cartelle, percorsi, file ecc) puoi denominare i file pdf con un nome univoco e impossibile da riprodurre (usa la guid). Così facendo eviti che se l'utente scrivesse nomesito.it/cartella/file1.pdf sia in grado di scaricarlo anche se non è il suo file.
    Con la guid infatti il nome del file sarebbe pressappoco così: nomesito.it/cartella/DF183C88-71AF-4A02-9AED-513A196B0C6C.pdf e
    -puoi altresì gestire la problematica salvando in formato binario il file nel database e recuperarlo quando l'utente effettua la ricerca.

    A te la scelta

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    11
    Grazie motogpdesmo16,
    la più interessante sembra la prima!
    Non conosco il funzionamento della GUID...avresti qualche link o pezzo di codice da propormi?
    Cmq una volta assegnato questo nome dovro' memorizzarlo in un db e associarlo ad un utente se non ho capito male(correggimi se sbaglio).
    Un altra cosa non mi è chiara:
    se un utente digita nella barra indirizzi nomesito.it/cartella/ mi esce la lista di tutti i file con relativi nomi rendendo inutile il nome univoco!!Come posso evitare che un utente navighi liberamente alle cartelle??
    Spero di essermi spiegato!

  4. #4
    Una soluzione intermedia a quelle proposte da motogpdesmo16 è quella di salvare i file in una cartella protetta (in IIS è possibile togliere la proprietà Read ad una cartella) rinominandoli opportunamente con una GUID o con un nome random univoco. In un database si andranno a memorizzare il nome univoco del file guid, il nome originale e la dimensione, in modo da poterlo rispedire identico in seguito all'utente. Con un click su un LinkButton esegui questa porzione di codice:
    codice:
    Response.Clear()
    Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}", nome_file_originale))
    Response.AddHeader("Content-Length", dimensione_file)
    Response.Charset = "UTF-8"
    Response.ContentType = "application/octet-stream"
    
    Response.TransmitFile(path & "\" & nome_file_guid)
    
    Response.End()
    Ovviamente ho omesso le parti di codice che leggono i valori dal database.
    Chi non cerca trova.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    11
    Grazie tas!
    Ho tolto la spunta read dalla cartella di IIS e adesso non si può più accedere!!!!
    Mi sapresti indicare come creare una GUID?

  6. #6
    Googlando un po' si fa presto a trovare la soluzione, eccone una:
    codice:
    Dim strGUID As String strGUID = System.Guid.NewGuid.ToString()
    Chi non cerca trova.

  7. #7
    Originariamente inviato da Pelle84
    Grazie motogpdesmo16,
    la più interessante sembra la prima!
    Non conosco il funzionamento della GUID...avresti qualche link o pezzo di codice da propormi?
    Cmq una volta assegnato questo nome dovro' memorizzarlo in un db e associarlo ad un utente se non ho capito male(correggimi se sbaglio).
    Un altra cosa non mi è chiara:
    se un utente digita nella barra indirizzi nomesito.it/cartella/ mi esce la lista di tutti i file con relativi nomi rendendo inutile il nome univoco!!Come posso evitare che un utente navighi liberamente alle cartelle??
    Spero di essermi spiegato!
    tas ti ha già postato il code snippet per la generazione di un nuovo guid in vb.net.
    La tua idea è corretta: una volta creato ed assegnato il nuovo guid devi salvarlo in una tabella utente-file (relazione 1:n) e, per quanto riguarda i permessi, come ti ha correttamente suggerito tas dovresti agire a livello di permessi sulla cartella contenente i file (scusami ma nel messaggio precedente ho effettivamente mancato di specificare questo particolare).

    La soluzione intermedia proposta sempre da tas è comunque ottima e puoi tenerla in seria considerazione.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    11
    Vi ringrazio!!!!
    Adesso implemento la vostra soluzione!!In caso di problemi sentirete ancora parlare di me!

    e
    Grazieee!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.