【问题标题】:Web.config authorization for folder with PDFs not working带有 PDF 的文件夹的 Web.config 授权不起作用
【发布时间】:2012-07-23 10:55:42
【问题描述】:

我已经搜索了我的问题的答案,但到目前为止还没有找到任何东西(对我有用)。

我有一个包含一些 pdf 文档的文件夹,经过身份验证的用户应该能够在我的 mvc3 应用程序中下载这些文档。 在互联网上搜索了一段时间后,我发现我应该使用以下代码将 Web.config 文件放在该文件夹中:

<configuration>
    <system.web>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</configuration>

或在根 Web.config 文件中的类似内容

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

这应该拒绝所有匿名用户。

我的视图中有一个列表,其中包含指向这些文档的链接。比如:

<a href="/Downloads/example.pdf">Download this document</a>

但是,即使我没有登录,我仍然可以访问和下载该文档。

我错过了什么吗? 还是有其他(更好的)方法可以做到这一点?

【问题讨论】:

  • 你真的在使用 ASP.net mvc 3 还是一个错误标签?
  • “我有一个包含一些 pdf 文档的文件夹,经过身份验证的用户应该能够在我的 mvc3 应用程序中下载” - 我认为这回答了您的问题
  • 正如@MihaiLabo 已经说过的,是的,我正在使用 asp.net mvc3 应用程序。
  • 对此没有任何解决方案,我遇到了同样的问题。即使我使用 system.web/authorization config settings 将 web.config 放在目录中

标签: .net asp.net-mvc-3 web-config


【解决方案1】:

您需要在 ASP.NET 处理的文件类型中包含 .pdf。

How to: Configure an HTTP Handler Extension in IIS

【讨论】:

  • 我按照您发送的链接中的步骤操作。当我尝试访问文档时,现在确实将我重定向到登录视图。所以这很好。但是.....当我登录并尝试访问文档时,我在 Chrome 中收到错误 324 (net::ERR_EMPTY_RESPONSE)。 IE 只是说它不能显示页面。
  • 确保 ASP.NET 帐户有权读取这些文件。
  • 我不知道该怎么做。 (我对此有点陌生)。登录不足以读取这些文件吗?
  • ASP.NET 进程在一个帐户下运行。该帐户需要访问这些文件。这是与 IIS(非 ASP.NET)不同的帐户。 ASP.NET 不在登录用户凭据下运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 2012-10-06
  • 2016-07-29
  • 2016-11-25
  • 2017-06-22
  • 1970-01-01
  • 2013-12-10
相关资源
最近更新 更多