2009-07-09 5 views
3

Bitte verzeihen Sie meine Ignoranz. Ich suche nach einem Punkt in die richtige Richtung.Obskuring eine Links URL

Ich habe eine Seite mit einigen (pdf) Download-Links. Wenn ich auf den Link klicke, öffnet sich eine PDF-Datei auf einer neuen Seite. Ich kann den Ordner sehen, in dem sich die PDF auf dem Server befindet. Wenn ich auf andere Dateinamen in demselben Ordner rate, kann ich vielleicht Glück haben. Einige der Dateien sind privat, daher möchte ich nicht, dass der Benutzer einen Hinweis von der URL erhält. Wie kann ich diese Informationen verschleiern? Wir laufen .net 2 auf dem Backend. Kann ich eine Methode aufrufen und die Datei öffnen lassen?

Jede Hilfe wird geschätzt. Ich bin mir nicht sicher, wonach ich suchen soll, um mich zu fangen.

Dank

Wir haben ein Back-End-Net 2.

Antwort

12

Sie könnten jede PDF-Datei mit assoziieren eine GUID in der Datenbank, dann könnten Sie eine Seite erstellen, DownloadPdf.aspx, und übergeben sie die guid die richtige Datei auf Ihrem Dateisystem zu finden, und machen es:

Response.Clear(); 
Response.ContentType = "application/pdf"; 
Response.WriteFile(physicalPathToFile); 
Response.End(); 

EDIT

Wenn Sie dem Benutzer die Möglichkeit geben wollen, die pdf herunterladen, können Sie die folgende Zeile ein, bevor Response.End hinzufügen:

Response.AddHeader("content-disposition", "attachment; filename=" + filename); 

Dabei könnte Dateiname der nicht-obskure Name der physischen Datei sein (oder irgendein Name, den Sie ihm geben möchten).

+2

Noch besser, benenne die Datei in GUID um und behalte den ursprünglichen Dateinamen in der Datenbank. Auf diese Weise garantieren Sie einen eindeutigen Dateinamen, und Sie können sogar eine grundlegende Dateiversionierung durchführen. –

1

D. Post ist 100% korrekt, Sie können einen Schritt weiter gehen und speichern Sie die Datei mit einer RESOURCES-Erweiterung daher IIS würde niemals direkt die Datei dienen.

+1

+1. Das ist ein ausgezeichneter Punkt, obwohl das gleiche durch Speichern der Dateien in app_data erreicht werden könnte, oder? Auf diese Weise müssen Sie den Dateityp nicht verzerren (praktisch, wenn Sie beispielsweise den Server remote als Administrator durchsuchen oder wenn Sie nur wissen möchten, mit welchem ​​Inhaltstyp Sie es zu tun haben). –

+0

Ja, Ich glaube, das wäre auch der Fall. –

Verwandte Themen