如何拒绝使用ASP.NET Web配置访问文件,但不仅限于本地?

Mor*_*ani 9 membership asp.net web-config

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

<location path="myfile.pdf">
    <system.web>
        <authorization>
            <allow roles="admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

并把它放到文件包含在其中的目录中.现在,当我在本地系统中运行项目时,我无法访问PDF文件,而是以"admin"角色登录.但是当我在Web服务器上发布项目时,我无法浏览文件夹,但是当我浏览PDF文件的完整路径时,我可以查看PDF文件.所以:

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

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

Jos*_* M. 11

在ASP.Net得到它之前,IIS可能正在提供PDF文件.假设您正在使用.Net 4.0,请将其添加到您的Web.config文件中以强制所有请求流向ASP.Net:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
<system.webServer>
Run Code Online (Sandbox Code Playgroud)