NReco CustomWkHtmlArgs持票人令牌

时间:2017-11-29 00:14:25

标签: javascript c# wkhtmltopdf nreco

使用NReco.PdfGenerator.HtmltoPdfConverter,最近使用Bearer令牌实施了OAuth。在实现并保护我的ApiControllers之后,转换器开始抛出以下错误。

WkHtmlToPdfException:由于网络错误退出代码1:AuthenticationRequiredError(退出代码:1)

经过一些窥探我发现我可以添加自定义标头参数,所以我抓住了不记名标记并将其附加到 CustomWkHtmlArgs

这就是我所要做的。

        htmlToPdf.CustomWkHtmlArgs = "-L 0mm -R 0mm -T 5mm -B 0mm --javascript-delay 3000";

        FileHandlingModule.deleteFile(savePath);

        //Get Auth Token
        var accessToken = "Bearer " + Request.Headers.Authorization.Parameter;

        htmlToPdf.CustomWkHtmlArgs += " --custom-header Authorization: " + accessToken;
        htmlToPdf.GeneratePdfFromFile(purl, null, savePath);

这就是 CustomWkHtmlArgs 这就是args字符串的样子。

-L 0mm -R 0mm -T 5mm -B 0mm --javascript-delay 3000 --custom-header授权:持票人     YHE7HJEh_Hk0wazErUK6DIGcCG7-GRDHBEWRA-ju9hewqPk9cjY3zH5MT ....

为简洁起见,缩短了令牌。我尝试删除冒号,但仍然得到AuthRequiredError。是否有人熟悉传递头部认证令牌?

1 个答案:

答案 0 :(得分:0)

首先尝试在引号中传递标题值:

htmlToPdf.CustomWkHtmlArgs += " --custom-header \"Authorization\" \"" + accessToken + "\"";

如果需要此标头来访问页面资源(图像,css,ajax调用),则还应指定“--custom-header-propagation”。

顺便说一下,您是否尝试过从命令行使用wkhtmltopdf测试自定义标头?此外,您可以处理htmlToPdf.LogReceived事件并获取wkhtmltopdf控制台日志输出 - 它可能对调试有用。