Domanda

Quando l'utente A carica un file, i suoi file verranno caricati nella cartella A, quando l'utente B, nella cartella B e così via. Ruoli / profili in ASP.NET. Le cartelle saranno preesistenti. Chiunque?

È stato utile?

Soluzione

Probabilmente vorrai codificarlo manualmente. Non c'è nulla di intrinseco in ASP.NET per la gestione dei file utente. Tuttavia, il codice per farlo dovrebbe essere relativamente semplice. Supponendo che il nome utente sia unico e non cambi mai, è possibile combinare il nome utente con un percorso (utilizzare Path.Combine) e caricarlo in quella posizione. Vorrei anche bloccare quella posizione in modo che nessun altro possa accedervi.

Altri suggerimenti

Il modo in cui l'ho fatto in passato è usare una cartella di upload di base (diciamo upload) e in quella cartella creare una cartella usando l'ID dell'utente dal DB. Quindi la struttura sarebbe .. \ uploads \ 145 per l'utente con un ID utente di 145.

La prima cosa che fa il mio codice è verificare se la cartella esiste e, in caso contrario, chiama un Directory.Create () (o qualunque sia la sintassi) per creare la cartella prima del caricamento.

Ulteriori informazioni che potresti trovare utili: Rinomino anche il file usando un GUID che evita conflitti di nomi se caricano 2 file con lo stesso nome. Il rovescio della medaglia è che normalmente sarà necessario mantenere una tabella con il nome file originale e il nome file fisico (GUID).

Puoi semplicemente verificare l'esistenza della cartella e crearla per l'utente se non esiste, ma ci sono implicazioni di sicurezza per questo. Potresti anche voler provare a archiviare i dati in un database e collegarli a un utente .. questo dipende da cosa stai lasciando caricare agli utenti, immagino.

Ci sono alcuni modi per farlo:

Utilizzo dell'autenticazione moduli

Se si utilizza l'autenticazione basata su moduli, è possibile impostare una convenzione in base alla quale il nome utente o l'id di un utente possono fungere da base per un percorso nel server in cui l'utente può caricare un file. Nota che il tuo utente non avrà accesso diretto a quella cartella: l'utente dovrebbe essere in grado di scaricare i file dal tuo server anche tramite la tua applicazione web.

Uso dell'autenticazione di Windows

Se si utilizza l'autenticazione di Windows (ad esempio ActiveDirectory), è possibile fornire all'utente l'accesso sia alla posizione fisica della cartella sia tramite un'applicazione Web.

P.S. - Sono contento di vederti qui Marlon!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top