我有带有表单身份验证的 ASP.NET 应用程序。它运行良好,但我有一个包含 olly .txt 文件(无 aspx 文件)的目录,我希望用户不要访问该目录(或仅登录用户)。
我将 web.config 添加到该目录:
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
EDIT:
这仅适用于 .aspx 文件。它不适用于 .txt 文件和类似文件。用户无法浏览该目录或子目录,但知道 .txt 文件名后就可以访问它。
我尝试了 IIS6 和 IIS 7.5。在 IIS6 上,.txt 文件也受到限制,但在 IIS 7.5 上则不然,因此可能是 IIS 配置问题。
您的问题取决于您使用的网络服务器。 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结合使用,例如
<allow roles="administrators" />
<deny users="*">
这样,除管理员之外的所有用户都将被锁定。如果用户已通过身份验证但不是管理员,他将被重定向到登录页面。
另一种选择是仅锁定匿名用户:
<deny users="?">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)