gpt4 book ai didi

asp.net - 使 Windows 身份验证和 WKHTMLToPDF 发挥良好的作用

转载 作者:行者123 更新时间:2023-12-03 22:08:06 26 4
gpt4 key购买 nike

我面临着从 ASP.NET 网站上的 HTML 页面生成 PDF 的任务。 (用户可以保存/打印得很好的东西)

我发现 WKHTMLToPDF 在看过这个之后做得很好:

Calling wkhtmltopdf to generate PDF from HTML

但是,我有一个问题。我们的网站是一个 Intranet 站点并使用 Windows 身份验证。我可以使用 --username 和 --password 将我的凭据传递给 WKHTMLToPDF,并向自己证明网页是按照您的希望生成的。

问题是这样的:对于进入我们系统的每个不同用户该怎么办?我可以想到许多可能/可能不起作用的可能解决方案,我希望有人能给我一些意见/指导,因为我似乎已经结束了我的研究。

可能的解决方案:

  • 在 ASP.NET 中有什么方法可以从用户凭据中提取用户名和密码以传递给 WKHTMLToPDF?我怀疑这个问题的答案是“不,出于合理的原因”
  • 是否可以运行进程并传递用户凭据?我可以看到可以在进程中设置用户名/密码(尽管我不知道如何从凭据中传递它,因为密码似乎没有公开)。也许还有另一种方法可以将凭据直接传递给 Process?
  • 我可以创建一个单独的 PDFGenerator 网站,它不使用 Windows 身份验证。然后我可以将 HTML/CSS/图像从 protected 网站移植到共享目录,然后将用户重定向到 PDFGenerator 网站以实际从 HTML 生成 PDF,而不必担心身份验证(并且会在 PDF 之后清理 HTML 等生成)。

  • 我怀疑 3 是我最终会坚持的解决方案,但由于这本质上是处理身份验证问题的一种重要解决方法,因此我非常愿意接受更好的建议或对 1 或 2 的帮助!

    最佳答案

    您可以在 web.config 中设置模拟:

    http://msdn.microsoft.com/en-us/library/aa292118%28v=vs.71%29.aspx

    这意味着执行的任何操作都是以用户身份完成的。尽管在某些情况下这可能会导致问题。这意味着该站点正在使用该 session 的用户凭据而不是应用程序池的身份运行,并且您必须跳过障碍才能将 Web 应用程序设置为正常运行并仍然安全。

    您应该注意,在大多数正常配置下,您运行的任何内容都将采用应用程序池的凭据。您可以更改应用程序池的帐户。这可能允许您通过仅允许运行应用程序池的用户访问来保持锁定状态。

    除了使用模拟的主应用程序之外,其他替代方法可能是拥有另一个应用程序。这可能比将整个应用程序转换为使用模拟更容易管理。 (我没有您项目的详细信息,因此很难在这里提出具体建议。)

    关于asp.net - 使 Windows 身份验证和 WKHTMLToPDF 发挥良好的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6341174/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com