2017-11-29 18 views
0

NReco.PdfGenerator.HtmltoPdfConverter 및 최근에 Bearer 토큰과 함께 구현 된 OAuth로 작업합니다. ApiControllers를 구현하고 보안을 설정 한 후 변환기에서 다음 오류가 발생하기 시작했습니다.NReco CustomWkHtmlArgs 무기명 토큰

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입니다.

-L -R 0mm 0mm 0mm -T 5mm -B --javascript 지연 3000는

--custom 헤더 권한 : 베어러 YHE7HJEh_Hk0wazErUK6DIGcCG7-GRDHBEWRA-ju9hewqPk9cjY3zH5MT ....

토큰왔다 간결하게하기 위해 단축. 콜론을 제거하려고 시도했지만 여전히 AuthRequiredError가 발생합니다. 헤더 인증 토큰을 전달하는 데 익숙한 사람이 있습니까? 모든

답변

0

먼저 따옴표로 헤더 값을 전달하려고 :이 헤더는 페이지 리소스 (이미지, CSS, AJAX 호출) 옵션 "--custom 헤더 전파"를 액세스하기 위해 필요한

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

경우해야 지정해야합니다.

그런데 명령 줄에서 wkhtmltopdf를 사용하여 사용자 지정 헤더를 테스트 해 보았습니까? 또한 htmlToPdf.LogReceived 이벤트를 처리하고 wkhtmltopdf 콘솔 로그 출력을 얻을 수 있습니다. 디버그 목적으로 유용 할 수 있습니다.

+0

명령 줄에 대한 정보 주셔서 감사합니다. 이로 인해 문제 해결 프로세스가 신속하게 진행되었습니다. 두 가지 유의 사항. 토큰을 전체 http 헤더 매개 변수가 아닌 따옴표로 묶으십시오. 'htmlToPdf.CustomWkHtmlArgs + = "- custom-header Authorization \" "+ accessToken +"\ ""; 페이지에 보안이 설정된 추가 AJAX 호출이 포함되어 있으면 스위치 _-- custom-header-propagation_을 추가해야합니다. 그러면 wkhtmltopdf가 각 후속 호출에 헤더 객체를 추가하도록 지시합니다. –

+0

@JeremyBond 귀하의 의견으로 답변을 업데이트했습니다. –