wkhtmltopdf Log in to asp.net web app

僤鯓⒐⒋嵵緔 提交于 2019-12-01 03:42:36
max

First, check the login form what post parameter it uses then try --post username xxx --post password xxx. Alternatively use wireshark and record the login process and see what parameters were posted.

Once u are logged in use --cookie-jar

See a better explanation here http://wkhtmltopdf.org/

getting wkhtmltopdf to convert a protected page can be tricky. Use also --extended-help to see other parameters u can use to login. e.g. if the site is protected by basic authentication it should be fairly easy with --user --password

If anyone's still looking for an answer, I'll write up a brief summary of what I did to get it working.

First, inspect the page you want to log in to, for instance http:/www.example.com/login

Look for the form surrounding the username/password inputs. In my case, I was logging into a rails form, so I also needed the authenticity token. Once you have the name and values of the log in inputs, you can make the first wkhtmltoimage call like this:

wkhtmltoimage --cookie-jar my.jar --post username steve --post password iscool http://www.example.com/login dummy.jpg

In my case of the rails form, I needed to pass the auth_token as a post parameter as well. Then, just re use that cookie jar when accessing the main page you want to view:

wkhtmltoimage --cookie-jar my.jar http://example.com/myprofile screenshot.jpg

The other way is to render view of website to html string and save temporarily to a local file. Then use wkhtmltopdf to convert that html file to PDF then remove that local file afterward. This way we do not need to handle the authentication of MVC.

I had a similar issue with my application that works on ASP.Net forms authentication. I had to pass in the authentication cookie like this to get it to work.

--cookie <name> <value>       

Important catch is that no additional cookie must be passed apart from auth cookie. Because some cookies with cause authentication to fail and even if it doesn't it will slow up the wkhtml process because wkhtml will have to process each cookie passed to it

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!