web.config授权是否适用于aspx以外的文件?

jlp*_*jlp 4 asp.net authentication iis-7 iis-7.5

我有ASP.NET应用程序与表单身份验证.它运行良好,但我有一个目录与olly .txt文件(没有aspx文件)我希望用户不访问(或只登录用户).

我将web.config添加到此目录:

<system.web>
    <authorization>
        <deny users="?" />
    </authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)

编辑:

这仅适用于.aspx文件.它不适用于.txt文件和类似文件.用户无法浏览此目录或子目录,但知道.txt文件名可以访问它.

我尝试IIS6和IIS 7.5.在IIS6上.txt文件也受到限制,但在IIS 7.5上并非如此,可能是IIS配置问题.

slf*_*fan 7

您的问题取决于您使用的Web服务器.ASP.NET授权仅适用于ASP.NET处理的文件类型.如果您有IIS 5或6,对于.txt文件甚至.jpg,.gif和纯.html文件通常都不是这样,但仅适用于aspx,asmx等.

如果你有IIS7和集成模式没问题,因为ASP.NET是集成的,将为每种类型的文件调用.因此,如果您有IIS5或6,则必须注册mime类型,例如aspnet.isapi也会调用.txt文件.

更新:配置

 <deny users="*"> 
Run Code Online (Sandbox Code Playgroud)

锁定所有用户.它只能与允许组合使用,例如

<allow roles="administrators" /> 
<deny users="*"> 
Run Code Online (Sandbox Code Playgroud)

像这样所有用户,但管理员将被锁定.如果用户已通过身份验证但未经过管理员身份验证,则会将其重定向到登录页面.

另一种选择是仅锁定匿名用户:

<deny users="?"> 
Run Code Online (Sandbox Code Playgroud)