2009-05-14 6 views
2

Nous hébergeons des rapports en ligne qu'un client se connectera et affichera. Les rapports sont des pages ASP tirant les numéros nécessaires d'une base de données SQL Server. Les détails d'accès du client sont également gérés par une table dans SQL Server.Mot de passe protéger les fichiers sur IIS sans utiliser l'autorisation de fichier NTFS

Par le passé, nous avions un ou plusieurs fichiers PDF ou d'autres fichiers auxquels le client pouvait vouloir accéder à partir du rapport en ligne. Ceux-ci ont été simplement téléchargés dans un sous-dossier dans le dossier des fichiers ASP et liés à partir de la page ASP pertinente.

Si je voulais protéger ces fichiers pour m'assurer que l'utilisateur essayant d'y accéder s'est connecté - est-ce qu'il y a une manière de faire ceci? Je pense que le fichier doit être stocké dans la base de données. Comment les autres gèrent-ils cela?

Répondre

3

La mise en place des fichiers PDF dans la base de données n'est pas nécessaire. Au lieu de cela, stockez les fichiers PDF dans un emplacement en dehors du dossier Web. Bien loin de l'accès public. Créer des enregistrements dans un DB pour les emplacements de chaque PDF avec un numéro d'identification. En supposant que vous avez déjà un système d'authentification pour les utilisateurs en place, créez une autre table qui lie l'ID utilisateur à l'ID d'enregistrement du fichier PDF auquel ils ont accès. À partir de là, il suffit de créer une page qui vérifie les informations d'identification par rapport à cette table d'accès, en ouvrant l'emplacement du fichier fourni par la base de données db et la réponse en binaire. Vous pouvez trouver plusieurs exemples de ce fait dispersés sur le web. Cependant, ASP classique a cette habitude ennuyeuse de stocker le fichier entier dans le RAM tout en le transférant ce qui MANGE des ressources comme vous ne le croiriez pas. Je recommande d'utiliser un script ASP.Net si possible. Le code est beaucoup plus facile aussi

Server.TransferFile() 
+0

Son pas ASP classique qui stocke le fichier dans la mémoire vive (vous pouvez désactiver mise en mémoire tampon et morceau réponse au client) mais le seul composant qui ubiquitaire disponible à ASP pour lire un fichier binaire le fichier est ADODB.Stream. Malheureusement, cela amènera souvent la plupart, sinon tous les fichiers en mémoire. – AnthonyWJones

+0

Merci Spencer - aidé énormément – Dan

Questions connexes