Frage

Ich bin vor der Aufgabe, ein PDF von einer HTML -Seite auf einer ASP.NET -Website zu generieren. (Etwas, das die Benutzer gut speichern/drucken können)

Ich habe festgestellt, dass WKHTMLTOPDF den Job sehr gut macht, nachdem er sich das angesehen hat:

Rufen Sie WKHTMLTOPDF an, um PDF aus HTML zu generieren

Ich habe jedoch ein Problem. Unsere Website ist eine Intranet -Site und verwendet Windows -Authentifizierung. Ich kann meine Anmeldeinformationen an WKHTMLTOPDF übergeben, indem ich -Benutzername und -password mit demonstrieren und mir demonstrieren, dass die Webseite generiert ist, wie Sie es hoffen würden.

Das Problem ist Folgendes: Was tun für jeden verschiedenen Benutzer, der in unser System kommt? Ich kann mir eine Reihe möglicher Lösungen vorstellen, die möglicherweise nicht funktionieren / nicht funktionieren, und ich hatte gehofft, dass mir jemand einige Meinungen / Anleitungen abgeben kann, da ich anscheinend meine Forschungen zu Ende gekommen bin.

Mögliche Lösungen:

  1. Gibt es eine Möglichkeit in ASP.NET, dass ich Benutzername und Kennwort aus den Benutzern Anmeldeinformationen extrahieren kann, um an WKHTMLTOPDF zu gelangen? Ich vermute, dass die Antwort darauf "Nein und aus vernünftigen Gründen" ist
  2. Ist es möglich, den Prozess auszuführen und die Anmeldeinformationen der Benutzer zu durchlaufen? Ich kann sehen, dass es möglich ist, Benutzername / Passwort auf den Prozess festzulegen (obwohl ich nicht weiß, wie ich dies aus den Anmeldeinformationen übergeben würde, da das Passwort nicht freigelegt zu sein scheint). Vielleicht gibt es eine andere Methode, um Anmeldeinformationen direkt zu verarbeiten?
  3. Ich könnte eine separate PDFGenerator -Website erstellen, auf der keine Windows -Authentifizierung verwendet wird. Ich könnte dann die HTML/CSS/Bilder von der gesicherten Website in ein freigegebenes Verzeichnis portieren und Benutzer dann auf die PDFGenerator -Website umleiten, um die PDF tatsächlich aus der HTML zu generieren, ohne sich um die Authentifizierung zu kümmern (und HTML usw. nach PDF zu beseitigen generiert).

Ich vermute, dass 3 die Lösung ist, die ich am Ende verfolgen werde, aber da dies im Wesentlichen eine große Problemumgehung ist, um mit dem Authentifizierungsproblem zu gelangen, bin ich sehr offen für bessere Vorschläge oder Hilfe bei 1 oder 2!

War es hilfreich?

Lösung

Sie können Imitation in Web.config einrichten:

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

Dies bedeutet, dass alles, was ausgeführt wird, als Benutzer getan wird. Dies kann jedoch in bestimmten Szenarien zu Problemen führen. Dies bedeutet, dass die Website mit den Anmeldeinformationen des Benutzers für diese Sitzung und nicht mit der Identität des App -Pools ausgeführt wird.

Sie sollten beachten, dass alles, was Sie ausführen, unter den meisten normalen Konfigurationen die Anmeldeinformationen des App -Pools übernehmen wird. Sie können das Konto für den App -Pool ändern. Auf diese Weise können Sie die Dinge gesperrt halten, indem Sie den Zugriff nur vom Benutzer, der den App -Pool ausführt, zulassen.

Andere Alternativen könnten eine andere App sein, abgesehen von der Haupt -App, die Identitätswechsel verwendet. Dies ist möglicherweise einfacher zu verwalten als Ihre gesamte App zu konvertieren, um Identitätswechsel zu verwenden. (Ich habe keine Details zu Ihrem Projekt, daher ist es schwierig, hier eine konkrete Empfehlung zu geben.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top