Built-in Chrome PDF 查看器未在 ASP.NET Web 应用程序中为经过身份验证的用户完全加载大型 PDF 文件

Built-in Chrome PDF Viewer does not fully load large PDF file for authenticated users in ASP.NET Web App

Built-in Chrome PDF 查看器无法为经过身份验证的用户完全加载大型 PDF 文件。

在我的环境中重现的步骤:

  1. 在 Visual Studio 2019 年创建一个具有 Individual User Accounts 身份验证的新 WebForms 项目
  2. solution explorer 中创建一些文件夹,例如MyPDFs 并在里面放一些大的 pdf file.
  3. 使用 web.config 保护此文件夹:

    <location path="MyPDFs"> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location>

    并出于此测试目的将 runAllManagedModulesForAllRequests 设置为 true:

    <modules runAllManagedModulesForAllRequests="true">

  4. 运行 这个带有 IISExpress 的站点并导航到 ~/MyPDFs/A17_FlightPlan.pdf 在我的例子中它是 https://localhost:44302/pdfs/A17_FlightPlan.pdf

  5. 登录屏幕出现,在用户成功登录后,pdf 部分呈现(仅第一页) 由 built-in Chrome PDF 查看器 (pdfium)

  6. 当您从 web.config 删除授权规则,或者将 PDF 文件放到其他位置时,它会正确加载

  7. 我可以在生产中重现相同的行为 - 完整的 IIS

  8. 其他浏览器工作正常:FireFox、EDGE,甚至 Chrome 替换为 Adob​​e Acrobat built-in PDF 查看器 reader 扩展

问题出在哪里? headers 还好吗?

这是 Google Chrome 中的错误。在 Chrome 版本 81.0.4044.43 (Official Build) beta (64-bit) 中似乎有效。