如何拒绝访问Asp.Net应用程序中的某些页面

时间:2011-10-23 12:42:03

标签: asp.net

我有一个需求:在Asp.Net 4.0应用程序中,我想拒绝访问某些资源。我想达到的目标如下:

1)考虑用户尝试从我的应用程序中获取文档,例如位于我的应用程序中某处的txt文件。

2)当用户输入我的网站的网址和资源时,例如www.mysite.com/Folder1/myfile.txt我的应用程序不应该返回该文件。

怎么做???

三江源

2 个答案:

答案 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提供服务,该页面会检查权限。