2013-01-04 3 views
2

Je cherche une solution qui limite les fichiers .pdf à télécharger par l'utilisateur mais récupérable par aspx ou asp, j'ai essayé d'ajouter les lignes suivantes dans le fichier web.config dans balise system.web dans le site Web répertoire racine:Restreindre les fichiers pdf à télécharger par l'utilisateur mais pouvant être exécutés par aspx ou asp

<httpHandlers> 
    <add verb="*" path="*.pdf" type="System.Web.HttpForbiddenHandler" /> 
</httpHandlers> 

Mais une erreur de serveur interne se produit lorsque j'accéder au site. Est-ce que quelqu'un sait comment faire cela, je teste sur IIS 7 sur Windows 7.

Mise à jour
j'ai configuré avec succès:

<add name="NoPdfAllowed" verb="*" path="download/*.pdf" 
    type="System.Web.HttpForbiddenHandler" /> 
</handlers> 

Mais j'ai un plugin applet java (une page html/asp/aspx) qui ne peut pas ouvrir le pdf après avoir ajouté les lignes ci-dessus dans le fichier web.config. Est-il possbile d'activer l'applet Java capable de charger le pdf?

+0

Avez-vous accès aux paramètres IIS? –

+0

@Joel Etherton Oui – hkguile

+0

Je n'ai pas le temps de publier une réponse correcte pour le moment, mais si vous recherchez des mappages de caractères génériques pour IIS 7, vous pouvez forcer tout type de fichier à valider l'authentification .Net, puis utiliser le rôle sécurité dans le web.config pour garder tout droit. –

Répondre

1

Que diriez-vous simplement de mettre les fichiers pdf en dehors du webdirectory?

Créez un répertoire appelé C: \ pdf-files \ et dans ce répertoire donnez les droits de lecture à l'utilisateur Internet. De cette façon, vos fichiers ASP et ASPX peuvent utiliser ces fichiers pour tout ce dont vous avez besoin, mais les utilisateurs visitant le site ne peuvent pas y accéder?

Si vous utilisez cependant une fonction comme adostream ou similaire, les utilisateurs pourraient encore être en mesure de télécharger le contenu diffusé en continu ...

0

Si je comprends votre problème, vous voulez interdire dowload des fichiers pdf creux « direct » url, mais permettez-leur d'être téléchargés via le client de toute façon (applet Java). C'est un peu comment faire cercle arrondi :)

J'utilise ce système sur mon site abandonware passe-temps pour télécharger des fichiers zip:

  • Put pdfs sur le répertoire du site Web ou désavouer leur extension comme Lorsque vous desservez une page .aspx avec une applet Java, générez un jeton unique (disons nouveau guid) qui contiendra un identifiant unique et un nom de fichier pdf, stockez-le dans le cache HTTP (si vous utilisez une seule boîte comme serveur) ou dans db/scaleout (ferme web), passez cet identifiant de jeton à l'applet, ce jeton devrait avoir une durée de vie juste limitée
  • Créer HttpHandler qui servira les fichiers pdf, ce gestionnaire va (avant de servir le pdf) vérifier par jeton id, si jeton est présent et toujours valide, et invalider ce jeton après avoir servi le fichier pdf
  • Vous pouvez également vérifier Referrer si elle correspond à votre domaine, mais je ne le recommanderais pas, certains navigateurs ne le configurent pas correctement

De cette façon, l'utilisateur peut toujours télécharger des fichiers PDF, mais le lien de téléchargement ne fonctionnera qu'une seule fois, donc ils ne peuvent pas lier votre contenu (du moins pas si facilement).

Questions connexes