我有一个需求:在Asp.Net 4.0应用程序中,我想拒绝访问某些资源。我想达到的目标如下:
1)考虑用户尝试从我的应用程序中获取文档,例如位于我的应用程序中某处的txt文件。
2)当用户输入我的网站的网址和资源时,例如www.mysite.com/Folder1/myfile.txt
我的应用程序不应该返回该文件。
怎么做???
三江源
答案 0 :(得分:2)
您可以使用位置标记来控制此类事物。
在此示例中,我向Customers和Admins授予对CustomersFolder目录的访问权限:
<location path="CustomersFolder">
<system.web>
<authorization>
<allow roles="Customers, Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
然后使用第二个块,我将访问该文件夹下的某个文件限制为Admins:
<location path="CustomersFolder/SecureFile.aspx">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
希望这样的事能对你有用。
答案 1 :(得分:1)
您可以使用web.config中的location element来限制对网页或文件夹的访问。但是为了使它适用于通常不由.NET运行时处理的文件(即.txt文件),你必须在IIS或web.config中配置它。
另一种选择是将您的敏感文件放在App_Data文件夹中,并且只通过特殊页面或HttpHandler提供服务,该页面会检查权限。