2010-02-25 5 views
4

Nous avons une application web aC# asp.net qui permet, entre autres, aux utilisateurs de télécharger des fichiers précédemment téléchargés tels que PDF, Word docs, etc. L'application asp.net est servie via un serveur IIS6 et les ressources de fichiers vivent sur un serveur différent. Lorsque l'utilisateur demande un fichier (c'est-à-dire que vous cliquez sur un bouton dans le formulaire Web), nous retransmettons le fichier dans son navigateur en modifiant le ContentType de manière appropriée.Chiffrement d'URL de dossier virtuel IIS

Cela semblait être un bon moyen d'éviter de parcourir la route des dossiers virtuels IIS pour servir les ressources de fichiers - ce qui nous préoccupait en raison de la possibilité pour les utilisateurs de pirater l'URL. c'est-à-dire avec une adresse URL telle que https://mydomain/myresource/clientid/myreport.docx, un utilisateur averti pourrait avoir une bonne idée des autres noms de cvlientid et de document. Le problème avec la diffusion d'un document Word dans le navigateur est que lorsque le navigateur le lance sur Word, Word le traite comme un nouveau document, ce qui signifie que les propriétés du document d'origine sont perdues.

Nos utilisateurs stockent des métadonnées dans les propriétés du document Word, de sorte que cette solution n'est pas acceptable pour eux.

service via des dossiers virtuels IIS résout ce problème, mais pose le problème de la sécurité URL.

Mes questions sont ...

Est-ce que quelqu'un sait comment on peut utiliser le chiffrement URL/déchiffrement (ou obscurcissement) avec IIS dossiers virtuels?
Ou est-ce que quelqu'un connaît des projets open source qui font un travail similaire.
Ou quelqu'un a-t-il des suggestions sur la façon d'écrire sa propre implémentation de dossiers virtuels mais avec des URL cryptées?

Merci beaucoup à l'avance.

ps. notre application web est livré https

+0

Pouvez-vous développer «Word le traite comme un nouveau document, ce qui signifie que les propriétés du document original et les informations de marge sont perdues»? Nous naviguons à travers un httphandler authentifié et n'avons aucun problème, une boîte apparaît pour sauvegarder le fichier, est-ce que c'est ce que vous faites? –

+0

Oui, la boîte s'ouvre pour ouvrir ou enregistrer le fichier. Si le client l'enregistre, toutes les propriétés qui existaient sur la version du serveur (titre, sujet, balises, etc.) n'existent pas sur la copie du client. –

+0

hmmm, juste fait un autre test avec des dossiers virtuels et quand j'ai dit "Servir via les dossiers virtuels IIS résout ce problème", on dirait que j'ai fait une erreur. Peut-être que ma question est "Comment puis-je préserver les propriétés des métadonnées (comme le titre, sujet) d'un fichier Word docx lorsqu'il est livré via le navigateur des clients –

Répondre

0

Désolé les gars, dans ma question, je me suis fait quelques hypothèses incorrectes. Qu'est-ce que j'essaie de faire est de persister les propriétés stockées sur un document Word quand ils sont livrés à partir du serveur (en utilisant soit Response.TransmitFile ou via un dossier virtuel) à un navigateur client.

J'ai mis en place un scénario de test avec un dossier virtuel IIS et ai laissé tomber un fichier docx (que je sais contient des informations dans le titre & propriétés du sujet) dans le chemin physique de mon dossier virtuel.

J'ai pointé mon navigateur sur l'alias du dossier virtuel et le navigateur a affiché son message pour ouvrir ou enregistrer le document.

Si je choisis de l'enregistrer, le docx a encore sauvé les propriétés intactes.

Si je choisis d'ouvrir le poing, puis l'enregistrer à partir de Word, le docx sauvé a perdu les propriétés.

Je pense que je dois poser une question différente!

0

Vous pouvez trouver que la classe ClaimsAuthorizationManager dans "Windows Identity Foundation" fait ce que vous voulez. Vous obtenez de mettre en œuvre la logique que vous souhaitez déterminer qui peut télécharger quoi sans utiliser la "sécurité de répertoire".

Questions connexes