web.config中的安全路径/文件夹

时间:2014-02-18 15:55:18

标签: c# asp.net web-config

我在网络应用程序中创建了一条安全路径。

在此链接中提及:http://msdn.microsoft.com/en-us/library/ff648341.aspx

当我使用以下配置来保护我的文件时:

<location path="Secure">
    <system.web>
      <customErrors mode="RemoteOnly" redirectMode="ResponseRewrite" defaultRedirect="error.html">
      </customErrors>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

如果没有loign,则无法访问以下文件:

my host link /secure/xyz/01.doc    
my host link /secure/xyz/01.docx    
my host link /secure/xyz/01.xls    
my host link /secure/xyz/01.xlsx

但是以下文件仍然可以在不登录的情况下访问:

my host link /secure/xyz/01.pdf    
my host link /secure/xyz/01.txt    
my host link /secure/xyz/01.png

关于这种行为的任何想法? 为什么除办公室文档文件仍可访问? 我需要保护它们。

2 个答案:

答案 0 :(得分:0)

当您的web.config保护您的网页和某些文件时,与许多其他静态文件一样,PDF正由IIS 直接提供。< / p>

您可以通过在web.config中的处理程序部分添加StaticFileHandler条目来强制这些其他静态文件通过ASP.NET pipleline。

<system.webServer>
  <handlers>
    <add name="PDFHandler" type="System.Web.StaticFileHandler" path="*.pdf" verb="GET"  />
    <add name="PNGHandler" type="System.Web.StaticFileHandler" path="*.png" verb="GET"  />
    <add name="TXTHandler" type="System.Web.StaticFileHandler" path="*.txt" verb="GET"  />
  </handlers>
</system.webServer>

我猜你的其他办公文档类型已经有类似的东西了。在web.config或IIS中。

答案 1 :(得分:0)

得到了解决方案。

登录后,点击下载有formate .pdf .png .txt的文件,
浏览器没有下载 - 但它显示在同一个标​​签中 (和浏览器缓存它,我想是的......如果我错了,请纠正我!!!)
如果是.doc .xls,则打开要下载的对话框(不进行缓存)。

退出后,浏览.pdf .png .txt的下载链接 它打开它/从缓存加载它 另一方面,当冲浪.doc .xls重定向我登录时