我在IIS7上部署了一个Web应用程序,并且该应用程序将邮件附件文件保存在网络服务器的Attachments
文件夹中,并且从附件下载附件时它正常工作
应用
问题是,从Chrome浏览器查看的相同网址是从其他计算机输入的,可以查看/下载相同的网址。我在谷歌搜索后尝试了几种解决方案,但是网络服务器上的附件文件夹已经为网络服务启用了安全性。
http://machine-121/AdminManagement/Attachments/58501/17112014131251/FilledForm.pdf
(可以阅读)
我试过
<configuration>
<system.web>
<authentication mode="Forms"/>
<authorization>
<deny users="?"/> <!--This will restrict anonymous user access-->
</authorization>
</system.web>
<location path="login.aspx"> <!-- Path of your Registration.aspx page -->
<system.web>
<authorization>
<allow users="*"/> <!-- This will allow users to access to everyone to Registeration.aspx-->
</authorization>
</system.web>
</location>
</configuration>
但无法取得任何建议/帮助会有很大的帮助。
答案 0 :(得分:2)
问题是ASP.NET处理程序没有捕获.pdf
扩展名,因为它不是映射到ASPNET_ISAPI(又名ASP.NET HTTP Runtime)的文件类型。因此,web.config
文件中的过滤不适用于这些文件。
您有两种选择:
答案 1 :(得分:0)
此问题的最佳解决方案是创建HTTP处理程序,您可以在其中根据特定条件限制下载文件。查看此link了解更多信息
答案 2 :(得分:0)
我认为最简单的方法是将runAllManagedModulesForAllRequests属性添加到web.config中的modules部分,如下所示:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
答案 3 :(得分:0)
管理以阻止IIS中的XML直接访问,并仍允许应用程序使用以下规则查询文件:
<rule name="Prevent XML direct access" enabled="true" stopProcessing="true">
<match url=".*filename\.xml$" />
<conditions>
<add input="{QUERY_STRING}" pattern="^part_of_query.*$" negate="true" />
</conditions>
<action type="Redirect" url="/error" appendQueryString="false" />