我的网络应用程序使用表单身份验证模式。
<authentication mode="Forms">
<forms loginUrl="Logon.aspx" protection="All" path="/" timeout="60" slidingExpiration="false" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
我的网络应用程序中有一个名为&#34; Documentos&#34;的文件夹,其中包含大量PDF文件。
我的程序允许用户使用其URL地址加载PDF文件:
http://MyHost/MyWebApp/Documentos/1.pdf
但是,我需要将该功能仅限于经过身份验证的用户。
为此,我输入了我的web.config:
<location path="Documentos">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
但它并没有任何区别。任何人仍然可以在文件夹Documentos中加载任何PDF文件:
http://MyHost/MyWebApp/Documentos/1.pdf
我可以完成我正在寻找的内容,还是应该以不同的方式处理它?</ p>
修改
Win的解决方案和理查德的解决方案都是正确的。这是将这些设置放在web.config中的方法:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<location path="Documentos">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
答案 0 :(得分:2)
哟有两个选择 -
如果您的Web应用程序不是根级别,请使用〜/。
<location path="~/Documentos">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
创建一个包含以下内容的web.config,并将其放在Documentos文件夹中。
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
答案 1 :(得分:1)
问题是默认情况下,auth部分仅适用于通过管道的请求,而不适用于静态文件。要执行您想要的操作,请将以下属性添加到模块部分:
foo bar.txt