2 Stimmen

Sicherung einzelner Dateien in ASP.NET

Ich habe ein Szenario, in dem ein Benutzer Zugriff auf eine Einmal-URL haben wird. Wenn der Benutzer auf die URL klickt, werden bestimmte Dateien für diesen Benutzer verfügbar sein.

Ich habe viele Dateien auf der Website, möchte aber nur bestimmte Dateien für diesen Benutzer zugänglich machen.

Ich habe darüber nachgedacht, ein authentifiziertes Cookie zu generieren und Formularauthentifizierung zu verwenden und Berechtigungen für einen bestimmten Ordner anzuwenden, aber ich benötige Autorisierung für einzelne Dateien, und die Dateien werden sich ständig ändern.

Was wäre der beste Weg, einem Benutzer nur Zugriff auf bestimmte Dateien zu geben? (Ich werde die anderen Dateien nicht anzeigen, aber ich möchte trotzdem nicht, dass andere Dateien verfügbar sind, wenn sie in die URL eingegeben werden)

3voto

kemiller2002 Punkte 110605

Ich würde eine .ashx (Handler-Datei) erstellen und diese Dateien dem Benutzer zur Verfügung stellen (in den Speicher laden und dann die Inhalte schreiben, indem die Datei in den Inhaltsstrom geschoben wird). Auf diese Weise hat der Endbenutzer niemals Berechtigungen für die tatsächlichen Dateien auf dem System, kann jedoch weiterhin auf sie zugreifen. Ihr Code kann dann steuern, wann und wie lange jede Datei für einen Benutzer verfügbar ist.

1voto

Dustin Laine Punkte 36921

Ich würde eine Abstraktion um den tatsächlichen Dateiabruf bereitstellen. Auf diese Weise sieht der Benutzer nie den Dateinamen. Etwas wie www.beispiel.com/Datei.aspx?id=SOMERANDOMGUID

Dieser RANDOMGUID könnte auf eine Datei im Hintergrund verweisen.

0voto

Dave Swersky Punkte 34052

Wenn Sie über viel Festplattenspeicher verfügen, ist eine Möglichkeit, dies zu erreichen, das Kopieren der Dateien in einen zufällig generierten Ordner, so dass die URL zu den Dateien eines Benutzers für jeden Benutzer eindeutig ist.

0voto

azamsharp Punkte 18941

Ich denke, es wäre einfacher, wenn Ihre Dateien mit einer ID verknüpft sind und der Pfad in der Datenbank gespeichert wird. Auf diese Weise können Sie die Dateien mithilfe der ID abrufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X