2

.NET Identity を使用して、C#.NET MVC アプリケーションのアクションから PDF をレンダリングできるようにしたいと考えています。

ただし、レンダリングしたいアクションではユーザーが認証される必要があり、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 に答える