Question

Je suis confronté à la tâche de générer un PDF à partir d'une page HTML sur un site Web ASP.NET. (Quelque chose les utilisateurs peuvent enregistrer loin / imprimer bien)

J'ai trouvé que WKHTMLToPDF fait le travail très bien avoir regardé ceci:

Appel wkhtmltopdf pour générer PDF à partir de HTML

Cependant, j'ai un problème. Notre site est un site intranet et utilise l'authentification Windows. Je peux passer mes lettres de créance à l'aide WKHTMLToPDF --username et --password et démontrer à moi-même que la page Web est générée comme vous l'espoir.

Le problème est la suivante: Que faire pour chaque utilisateur différent qui vient dans notre système? Je peux penser à un certain nombre de solutions possibles qui peuvent / peut ne pas fonctionner et j'espérant que quelqu'un pourrait me donner des opinions / orientation que je semble être arrivé à la fin de mes recherches.

Solutions possibles:

  1. Est-il possible dans ASP.NET que je peux extraire le nom d'utilisateur et mot de passe des informations d'identification des utilisateurs pour passer dans WKHTMLToPDF? Je soupçonne que la réponse à cette question est « non et pour des raisons raisonnables »
  2. Est-il possible de lancer le processus et passer à travers les informations d'identification des utilisateurs? Je peux voir qu'il est possible de définir Nom d'utilisateur / mot de passe sur le processus (bien que je ne sais pas comment je passerais ce des lettres de créance depuis le mot de passe ne semble pas être exposé). Peut-être il y a une autre méthode pour les informations d'identification qui passe directement au processus?
  3. Je pourrais créer un site web PDFGenerator distinct qui n'utilise l'authentification Windows. Je pourrais alors le port le HTML / CSS / images à partir du site Web sécurisé à un répertoire partagé et les utilisateurs rediriger vers le site Web de PDFGenerator pour générer réellement le PDF à partir du HTML sans avoir à vous soucier de l'authentification (et nettoieraient HTML etc après PDF généré).

Je soupçonne que 3 est la solution que je vais finir par persuing mais puisque c'est essentiellement une grande solution pour traiter le problème d'authentification Je suis très ouvert à de meilleures suggestions ou aide sur 1 ou 2!

Était-ce utile?

La solution

You can set up impersonation in web.config:

http://msdn.microsoft.com/en-us/library/aa292118%28v=vs.71%29.aspx

This means anything that is executed is done as the user. This can cause problems though in certain scenarios. This means that the site is running with the user's credentials for that session rather than the identity of the app pool, and you'll have to jump through hoops to set up the web app to function properly and still be secure.

You should note that anything you run is going to take on the credentials of the app pool under most normal configurations. You can change the account for the app pool. This might allow you to keep things locked down by allowing access only from the user that is running the app pool.

Other alternatives might be to have another app aside from the main app that uses impersonation. This might be easier to manage than converting your entire app to use impersonation. (I don't have details of your project, so it is hard to make a concrete recommendation here.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top