ASP.NET returns 401 未授权文件即使 web.config 设置为允许它?

ASP.NET returns 401 Unauthorized for a file even when web.config is set up to allow it?

我可能在这里遗漏了一些简单的东西,但我有一个使用身份和角色的 ASP.NET 网站,我试图限制对包含一些 MP4 视频的文件夹的访问,这样匿名用户就不能直接 link 观看这些视频。

我的 web.config 文件夹中有这个:

<?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 控件在此设置下工作正常,但视频 return 出现 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>

不幸的是,这使得我可以访问视频 link 即使没有登录(这是我试图阻止的)。

如果我尝试像这样为 Files 子文件夹进行基于角色的设置(我认为这应该与第一个版本没有任何不同)然后我又回到了视频 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?