4 Stimmen

IIS Virtual Folder URL-Verschlüsselung

Wir haben eine c# asp.net-Webanwendung, die es den Benutzern unter anderem ermöglicht, zuvor hochgeladene Dateien wie PDFs, Word-Dokumente usw. herunterzuladen. Die asp.net-Anwendung wird über einen IIS6-Server bereitgestellt und die Dateiressourcen befinden sich auf einem anderen Server.

Wenn der Benutzer eine Datei anfordert (d. h. auf eine Schaltfläche im Webformular klickt), streamen wir die Datei zurück an seinen Browser und ändern den ContentType entsprechend.

Dies schien ein guter Weg zu sein, um den Weg über den virtuellen IIS-Ordner zu vermeiden, um die Dateiressourcen bereitzustellen - was wir aufgrund der Möglichkeit, dass Benutzer die URL hacken können, für bedenklich hielten. z.B. mit einer URL wie https://mydomain/myresource/clientid/myreport.docx kann ein geschickter Benutzer alternative cvlientid's und Dokumentennamen erraten.

Das Problem beim Streaming eines Word-Dokuments in den Browser besteht darin, dass Word das Dokument, wenn es vom Browser an Word übergeben wird, als brandneues Dokument behandelt, was bedeutet, dass die Eigenschaften und Randinformationen des ursprünglichen Dokuments verloren gehen.

Unsere Benutzer speichern die Metadateninformationen in den Eigenschaften der Word-Dokumente, so dass diese Lösung für sie nicht akzeptabel ist.

Die Bereitstellung über virtuelle IIS-Ordner löst dieses Problem, führt aber das Problem der URL-Sicherheit ein.

Meine Fragen sind also ...

Weiß jemand, wie wir URL-Verschlüsselung/Entschlüsselung (oder Verschleierung) mit IIS Virtual Folders verwenden können?
Oder kennt jemand ein Open-Source-Projekt, das eine ähnliche Aufgabe erfüllt?
Oder hat jemand irgendwelche Vorschläge, wie man über das Schreiben unserer eigenen Implementierung von virtuellen Ordnern aber mit verschlüsselten URLs gehen?

Vielen Dank im Voraus.

ps. unsere Webanwendung wird über https bereitgestellt

0voto

RSX Punkte 358

Entschuldigung, Leute, ich habe in meiner Frage einige falsche Annahmen gemacht.

Was ich zu tun versuche, ist die Eigenschaften auf ein Word-Dokument gespeichert, wenn sie vom Server (entweder mit Response.TransmitFile oder über einen virtuellen Ordner) an einen Client-Browser geliefert werden.

Ich habe ein Testszenario mit einem virtuellen IIS-Ordner eingerichtet und eine docx-Datei (von der ich weiß, dass sie Informationen in den Eigenschaften von Titel und Betreff enthält) im physischen Pfad meines virtuellen Ordners abgelegt.

Ich zeigte mit meinem Browser auf den Alias des virtuellen Ordners und der Browser öffnete die Meldung, dass ich das Dokument entweder öffnen oder speichern soll.

Wenn ich es speichere, sind die Eigenschaften des gespeicherten Dokuments noch intakt.

Wenn ich es mit der Faust öffne und dann in Word speichere, hat das gespeicherte docx die Eigenschaften verloren.

Ich glaube, ich muss eine andere Frage stellen!

0voto

Vivian River Punkte 29806

Sie können feststellen, dass die ClaimsAuthorizationManager Klasse in "Windows Identity Foundation" macht, was Sie wollen. Sie können jede beliebige Logik implementieren, um zu bestimmen, wer was herunterladen kann, ohne "Verzeichnissicherheit" zu verwenden.

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