内置 Chrome PDF 查看器不会为经过身份验证的用户完全加载大型 PDF 文件。
在我的环境中重现的步骤:
- 在 Visual Studio 2019 中创建一个具有身份验证的新
WebForms
项目Individual User Accounts
- 在
solution explorer
创建一些文件夹,例如MyPDFs
并放入一些大的pdf 文件中。 使用以下命令保护此文件夹
web.config
:<location path="MyPDFs"> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location>
并为此测试目的设置
runAllManagedModulesForAllRequests
为true
:<modules runAllManagedModulesForAllRequests="true">
使用 IISExpress 运行此站点并导航到
~/MyPDFs/A17_FlightPlan.pdf
在我的情况下https://localhost:44302/pdfs/A17_FlightPlan.pdf
当您从 中删除授权规则
web.config
或将 PDF 文件放到其他位置时,它会正确加载我可以在生产中重现相同的行为 - 完整的 IIS
其他浏览器也能正常工作:FireFox、EDGE 甚至 Chrome,替换为 Adobe Acrobat 阅读器扩展的内置 PDF 查看器
问题可能出在哪里?标头正常吗?