问题描述
我可能在这里缺少一些简单的东西,但是我有一个使用身份和角色的ASP.NET网站,并且我试图限制对包含某些MP4视频的文件夹的访问,以使匿名用户无法看到指向以下内容的直接链接这些视频。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin"/>
<allow roles="User"/>
<deny users="*" />
</authorization>
</system.web>
</configuration>
asp:LoginView控件在此设置下工作正常,但是视频返回401错误。
我也尝试了同样的结果:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
如果我从授权标签中删除了所有内容,那么它可以正常工作,因此我知道所有路径都是正确的,并且有关授权设置的某些规定阻止了该视频的播放。
我还尝试过像这样单独调出Files目录:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin"/>
<allow roles="User"/>
<deny users="*" />
</authorization>
</system.web>
<location path="Files">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
</configuration>
不幸的是,这样做使我即使未登录也可以访问视频链接(这是我要防止的事情)。
如果我尝试像这样对“文件”子文件夹进行基于角色的设置(我认为它与第一个版本应该没有什么不同),那么即使在登录时,我也会回到视频401上在:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin"/>
<allow roles="User"/>
<deny users="*" />
</authorization>
</system.web>
<location path="Files">
<system.web>
<authorization>
<allow roles="Admin"/>
<allow roles="User"/>
<deny users="*" />
</authorization>
</system.web>
</location>
</configuration>
我在这里想念什么?
解决方法
我修改了答案。我认为以下是您要寻找的:
How to prevent anonymous users from accessing a file using forms authentication?