簡體   English   中英

JWT ABCchrome 中的不記名令牌 header

[英]JWT Bearer token in ABCchrome header

I am using ABCPdf 11 to convert html to pdf, my html page which needs to be converted required JWT token so that needs to be passed to ABCChrome so it can use the JWT token. 我嘗試了以下方法,但身份驗證仍然失敗:

doc.HtmlOptions.HttpAdditionalHeaders = $"Authorization: Bearer {accessToken}";

我從這里跟隨示例: https://www.websupergoo.com/helppdfnet/default.htm?page=source%2F5-abcpdf%2Fxhtmloptions%2F2-properties%2Fhttpadditionalheaders.htm

從上面 URL 的描述中,我也嘗試了以下選項:

doc.HtmlOptions.NoCookie = true;
doc.HtmlOptions.Media = MediaType.Screen;

添加HttpAdditionalHeaders之后,當我從 pdf 庫中獲得 http 狀態時,我確實得到了 401 http 狀態代碼,它確認了

var imageId = doc.AddImageUrl(model.Url);
var status = doc.HtmlOptions.ForChrome.GetHttpStatusCode(imageId);

這里的狀態是 401 - 未授權

ABCChrome 引擎當前不支持 HttpAdditionalHeaders 屬性。 ABCChrome 支持的唯一 HtmlOptions 在此處指定。

您可以嘗試以下幾件事:

  1. 檢查目標服務器是否支持通過 GET 請求參數發送 web 令牌 - 我猜你可能已經這樣做了:-)
  2. 將 AddImageUrl 請求 URL 發送到中間 web 服務器(甚至是本地HttpServer )到可以根據任何 GET 參數為您獲取頁面的腳本。
  3. 如果您嘗試訪問的服務接受 ajax 請求,您可以嘗試使用 javascript 將響應注入使用 XMLHttpRequest.setRequestHeader() 的頁面。 注意,如果您為此使用本地文件(例如 file://),您可能會遇到一些 Chromium 強制執行的 JavaScript 安全問題。

我知道 WebSupergoo 為他們的所有許可證提供免費支持,包括試用許可證。

祝你好運。

通過電子郵件發送 ABCPdf 支持,不幸的是 ABCChrome 不支持HttpAdditionalHeaders屬性,因此解決方法是自己下載 html 並將其轉換為 PDF,請參見下面的示例:

var imageId = doc.AddImageHtml(html); // <- html downloaded from auth url

也不要忘記添加分頁:

// add all pages to pdf
while (doc.Chainable(imageId))
{
    doc.Page = doc.AddPage();
    imageId = doc.AddImageToChain(imageId);
}

for (int i = 1; i <= doc.PageCount; i++)
{
    doc.PageNumber = i;
    doc.Flatten();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM