Обеспечение хорошей аутентификации Windows и WKHTMLToPDF - PullRequest
5 голосов
/ 14 июня 2011

Передо мной стоит задача создания PDF-файла из HTML-страницы на веб-сайте ASP.NET. (Что-то, что пользователи могут сохранить / распечатать красиво)

Я обнаружил, что WKHTMLToPDF отлично справляется со своей работой, посмотрев на это:

Вызов wkhtmltopdf для создания PDF из HTML

Однако у меня есть проблема. Наш веб-сайт является интранет-сайтом и использует проверку подлинности Windows. Я могу передать свои учетные данные в WKHTMLToPDF, используя --username и --password, и продемонстрировать себе, что веб-страница создается так, как вы надеетесь.

Проблема заключается в следующем: что делать для каждого отдельного пользователя, который входит в нашу систему? Я могу подумать о ряде возможных решений, которые могут / не могут работать, и я надеялся, что кто-то может дать мне некоторые мнения / рекомендации, поскольку я, кажется, подошел к концу моих исследований.

Возможные решения:

  1. Есть ли способ в ASP.NET, чтобы я мог извлечь имя пользователя и пароль из учетных данных пользователей для передачи в WKHTMLToPDF? Я подозреваю, что ответ на это "нет и по разумным причинам"
  2. Можно ли запустить процесс и пройти через учетные данные пользователей? Я вижу, что можно установить имя пользователя / пароль в процессе (хотя я не знаю, как бы передать это из учетных данных, так как пароль, кажется, не раскрывается). Возможно, есть другой способ передачи учетных данных непосредственно в Process?
  3. Я мог бы создать отдельный сайт PDFGenerator, который не использует аутентификацию Windows. Затем я мог бы перенести HTML / CSS / изображения с защищенного веб-сайта в общий каталог, а затем перенаправить пользователей на веб-сайт PDFGenerator, чтобы фактически генерировать PDF-файл из HTML, не беспокоясь об аутентификации (и мог бы очистить HTML и т. Д. После PDF генерируется).

Я подозреваю, что 3 - это решение, которое я в конечном итоге буду убеждать, но так как это, по сути, один большой обходной путь для решения проблемы аутентификации, я очень открыт для лучших предложений или помощи по 1 или 2!

1 Ответ

2 голосов
/ 14 июня 2011

Вы можете настроить олицетворение в web.config:

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

Это означает, что все, что выполняется, выполняется как пользователь. Это может вызвать проблемы, хотя в определенных сценариях. Это означает, что сайт работает с учетными данными пользователя для этого сеанса, а не с идентификатором пула приложений, и вам придется перепрыгивать через обручи, чтобы настроить веб-приложение для правильной работы и безопасности.

Обратите внимание, что все, что вы запускаете, будет принимать учетные данные пула приложений в большинстве обычных конфигураций. Вы можете изменить учетную запись для пула приложений. Это может позволить вам заблокировать доступ, разрешив доступ только пользователю, который запускает пул приложений.

Другие альтернативы могут заключаться в том, чтобы иметь другое приложение помимо основного приложения, которое использует олицетворение. Это может быть проще в управлении, чем преобразование всего приложения для использования олицетворения. (У меня нет деталей вашего проекта, поэтому здесь трудно дать конкретную рекомендацию.)

...