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

标签 asp.net authentication iis-7 iis-7.5

我有带有表单例份验证的 ASP.NET 应用程序。它运行良好,但我有一个包含 olly .txt 文件(无 aspx 文件)的目录,我希望用户不要访问(或仅登录用户)。

我将 web.config 添加到这个目录:

<system.web>
    <authorization>
        <deny users="?" />
    </authorization>
</system.web>

编辑:

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

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

最佳答案

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

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

更新:
的配置

 <deny users="*"> 

锁定所有用户。它只能与允许结合使用,例如
<allow roles="administrators" /> 
<deny users="*"> 

像这样所有用户,但管理员将被锁定。如果用户通过身份验证但不是管理员,他将被重定向到登录页面。

另一种选择是仅锁定匿名用户:
<deny users="?"> 

关于asp.net - web.config 授权是否适用于 aspx 以外的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291503/

相关文章:

java - Tomcat 7.0.79 服务器认证问题

asp.net-mvc - 发送 HTTP header 后服务器无法设置状态 IIS7.5

asp.net - 具有管道模式的 IIS 7.0 = 集成不会在 ASP .NET 中加载任何图像/css

jquery - KeyUp/KeyDown keyCode 不适用于 IE 中的密码字段?

asp.net - 如何在网址栏中隐藏 asp 网址?

使用两个 mysql 表的详细信息进行 PHP 登录

asp.net - 如何在 Web 窗体 .NET Web 应用程序下配置嵌套 MVC 应用程序

javascript - 如何从代码隐藏调用 .aspx 页面中的书面函数

c# - ASMX SOAP Web 服务创建复杂类型而不是简单类型

azure - 如何为下游应用程序设置Azure AD应用程序权限?