Улучшение работы аутентификации Windows и WKHTMLToPDF

Я столкнулся с задачей создания 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!


person John Reilly    schedule 14.06.2011    source источник


Ответы (1)


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

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

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

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

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

person Community    schedule 14.06.2011
comment
Это не совсем то, что мне нужно, но не отличается от подхода, который я сейчас использую в своем прототипе. По сути, у меня есть фиктивная учетная запись Windows, которую я использую для аутентификации. Поэтому я храню кредитные данные учетной записи в зашифрованном виде в файле web.config и использую их при вызове wkhtmltopdf. Не славно, но, кажется, работает, и поэтому я могу его использовать... - person John Reilly; 15.06.2011