Olá pessoal,
Estou com uma duvida que não consigo resolver…
Tenho uma tela web que o usuário acessa para fazer download de arquivos que estão no servidor. Porém, eu queria restringir o download por usuário.
Por exemplo, para o Usuário 1, aparece uma lista de arquivos que ele pode baixar a hora que quiser, porém, o Usuário 2 não pode ver essa lista, e é uma lista diferente, com outros arquivos.
Meu sistema tem autenticação de usuários, uma tela de login, estava pensando como é que eu posso fazer para que cada usuário consiga acessar somente a sua lista de arquivos, e que os outros usuários não consigam vê-las. Alguém tem alguma ideia de como eu posso fazer isso??
Essa tela de download que criei funciona perfeitamente, faz download corretamente.
A minha tela está em VB, mas se tiver alguma ideia em Aspx tbm será bem vinda.
Segue abaixo o código da minha tela de download.
Option Explicit On
Option Strict On
Imports System.IO
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub btnDownload_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDownload.ServerClick
Dim arquivo As FileInfo
Dim nomeArquivo As String
'Obtêm o nome compleo do arquivo selecionado
nomeArquivo = Server.MapPath("arquivos") & "\" & lstArquivos.SelectedItem.Text
'Obtêm os dados do arquivo pois o tamanho é requerido para efetuar o download
arquivo = New FileInfo(nomeArquivo)
'envia para o browser
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" & lstArquivos.SelectedItem.Text)
Response.AddHeader("Content-Length", arquivo.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(nomeArquivo)
Response.End()
End Sub
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim arquivos() As String
Dim index As Integer
If (Not Page.IsPostBack) Then
'Obtem a lista de arquivos no diretório imagens
arquivos = Directory.GetFiles(Server.MapPath("arquivos"))
'removemos o caminho dos arquivos a serem exibidos
For index = 0 To arquivos.Length - 1
arquivos(index) = New FileInfo(arquivos(index)).Name
Next index
'vincula a lista dos arquivos ao controle no formulário
lstArquivos.DataSource = arquivos
lstArquivos.DataBind()
'seleciona a primeira entrada da lista
lstArquivos.SelectedIndex = 0
End If
End Sub 'Page_Load
End Class
Obrigado.