asp.net - 如何使用 ASP.NET Web 配置拒绝访问文件,而不仅仅是本地访问?

标签 asp.net web-config membership

我的 ASP.NET Web 配置文件有问题。我想拒绝某些用户或角色访问特定的 PDF 文件。我正在使用 ASP.NET 成员(member)和角色管理系统。所以我将这行代码添加到 Web.config 文件中:

<location path="myfile.pdf">
    <system.web>
        <authorization>
            <allow roles="admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

并将其放入文件所在的目录中。现在,当我在本地系统中运行该项目时,我无法使用“admin”角色登录来访问 PDF 文件。但是当我在网络服务器上发布项目时,我无法浏览该文件夹,但当我浏览 PDF 文件的完整路径时,我可以查看 PDF 文件。所以:

我无法访问:http://www.example.com/folder

但我可以查看:http://www.example.com/folder/myfile.pdf

最佳答案

IIS 可能在 ASP.Net 获取 PDF 文件之前就已经提供该文件了。假设您使用的是 .Net 4.0,请将其添加到您的 Web.config 文件中以强制所有请求流向 ASP.Net:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
<system.webServer>

关于asp.net - 如何使用 ASP.NET Web 配置拒绝访问文件,而不仅仅是本地访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5178033/

相关文章:

asp.net - ASP.Net 与 SQL Server 中的数据安全

c# - TFS Build 不断抛出 'Unable to perform the get operation because the file already exists locally' 错误

ASP.NET Active Directory 成员资格提供程序和 SQL 配置文件提供程序

python - 检查元组成员资格的时间复杂度是多少?

javascript - 以有效的 .Net 格式在 javascript 中对日期进行字符串化

c# - 如何使用 ASP.NET WebForms 和现有的 SQL Server 数据库实现登录功能?

c# - StackExchange.Redis 与 Azure Redis 速度慢得无法使用或引发超时错误

web-config - 从 web.config 中分离 ConnectionStrings 和 mailSettings?可能的?

.net - ASP.NET web.config 文件失控了吗?

带有整数枚举器的 Python bool 运算符成员资格测试