В документации SelectPdf для файла cookie проверки подлинности меня оттолкнуло имя System.Web.Security.FormsAuthentication.FormsCookieName, которое, как я предполагал, было таким, каким оно и должно быть.
// set authentication cookie
converter.Options.HttpCookies.Add(
System.Web.Security.FormsAuthentication.FormsCookieName,
Request.Cookies[FormsAuthentication.FormsCookieName].Value);
но я получил следующее исключение:
System.TypeLoadException: Could not load type 'System.Web.Security.FormsAuthentication' from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Что я наконец понял, так это то, что мне нужно было передать куки аутентификации ASPNETZERO (которая после просмотра в папке куки была «Abp.AuthToken»). Вместо того, чтобы пытаться получить значение cookie в методе сервиса, я передал его в параметре call:
print(item: FormSummaryDto) {
this.beginTask();
let formUrl = AppConsts.appBaseUrl + '/#/app/main/form/' + item.formType.toLowerCase() + '/' + item.id + '/print';
let authToken = abp.utils.getCookieValue('Abp.AuthToken');
let input = new ExportFormInput({ formId: item.id, formUrl: formUrl, authToken: authToken, includeAttachments: true });
this.service.exportFormToPdf(input)
.finally(() => { this.endTask(); })
.subscribe((result) => {
if (result == null || result.fileName === '') {
return;
}
this._fileDownloadService.downloadTempFile(result);
}, error => console.log('downloadFile', 'Could not download file.'));
}
и, наконец, в методе, добавив опцию конвертера HttpCookies:
HtmlToPdf converter = new HtmlToPdf();
converter.Options.HttpCookies.Add("Abp.AuthToken", authToken);
PdfDocument doc = converter.ConvertUrl(url);
doc.Save(file);
doc.Close();
После этого мне удалось преобразовать URL.
Wg