2

我希望能够使用 .NET Identity 从我的 C#.NET MVC 应用程序中的操作呈现 PDF。

但是,我要呈现的 Action 需要对用户进行身份验证,并且 HiQPdf 不按原样尊重 cookie。

我怎样才能做到这一点?

4

1 回答 1

2

您需要将 cookie 传递给 pdf 生成器,其余的应该可以工作:

public ActionResult DownloadPdf(int? id)
{
    var fullUrl = Url.Action("Details", "MyController", new { id }, Request.Url.Scheme);
    var pdf = new HtmlToPdf();
    string fileName = "Some name.pdf";
    var cookies = Request.Cookies.AllKeys.ToDictionary(k => k, k => Request.Cookies[k].Value);
    foreach(var cookie in cookies)
        pdf.HttpCookies.AddCookie(cookie.Key,cookie.Value);

    return File(pdf.ConvertUrlToMemory(fullUrl), System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
}
于 2017-10-16T09:07:12.747 回答