Изправен съм пред задачата да генерирам PDF от HTML страница на уебсайт на ASP.NET. (Нещо, което потребителите могат да запазят/отпечатат добре)
Открих, че WKHTMLToPDF върши работата много добре, след като разгледах това:
Извикване на wkhtmltopdf за генериране на PDF от HTML
Обаче имам проблем. Нашият уебсайт е интранет сайт и използва Windows Authentication. Мога да предам идентификационните си данни на WKHTMLToPDF с помощта на --username и --password и да демонстрирам на себе си, че уеб страницата е генерирана, както се надявате.
Проблемът е следният: Какво да правим за всеки различен потребител, който влиза в нашата система? Мога да се сетя за редица възможни решения, които може / може да не работят и се надявах някой да ми даде някакво мнение/насоки, тъй като изглежда съм стигнал до края на моите проучвания.
Възможни решения:
- Има ли някакъв начин в ASP.NET, по който мога да извлека потребителско име и парола от потребителските идентификационни данни за преминаване в WKHTMLToPDF? Подозирам, че отговорът на това е „не и поради разумни причини“
- Възможно ли е да стартирате процеса и да преминете през идентификационните данни на потребителите? Виждам, че е възможно да се зададе потребителско име / парола на процеса (въпреки че не знам как бих предал това от идентификационните данни, тъй като паролата изглежда не е изложена). Може би има друг метод за предаване на идентификационни данни директно на процеса?
- Мога да създам отделен уебсайт на PDFGenerator, който не използва Windows удостоверяване. След това бих могъл да пренеса HTML/CSS/изображенията от защитения уебсайт в споделена директория и след това да пренасоча потребителите към уебсайта на PDFGenerator, за да генерирам действително PDF от HTML, без да се налага да се притеснявам за удостоверяване (и ще изчистя HTML и т.н. след PDF генерирани).
Подозирам, че 3 е решението, което в крайна сметка ще преследвам, но тъй като това по същество е едно голямо решение за справяне с проблема с удостоверяването, аз съм много отворен за по-добри предложения или помощ за 1 или 2!