【发布时间】:2009-06-18 21:04:43
【问题描述】:
假设我在 web.config 中有以下内容:
<allow roles="Developers" />
<deny users="*"/>
这会锁定对 .aspx、.asmx 和其他 .NET 文件类型的访问,但它仍然允许未经授权的用户打开像 image.jpg 这样的静态文件。我明白为什么当有人要求 image.jpg 时,web.config 没有被要求提供授权信息(它不是 .NET 类型,IIS 可以绕过它),但是我怎样才能锁定整个应用程序呢?
我在网上找到的建议包括:
- 为有问题的目录创建一个
<location>条目,IIS / .NET 将获取它。 (似乎没有。) - 您需要编写自己的 ISAPI 过滤器并将所有敏感文件的扩展名映射到该过滤器。
- 您无需编写自己的 ISAPI 过滤器 - 只需将扩展映射到 aspnet_isapi.dll 即可。
- 您根本不需要编辑 IIS,只需在 web.config 中为您的扩展创建一个 httpHandler 条目。 (我真的不想尝试对应用程序中的每个扩展都这样做。)
这一切都不像我记得在 Apache 中那样容易。向访问者询问密码并且不向任何没有密码的用户提供任何文件(静态或非静态文件),最简单的方法是什么?
【问题讨论】:
标签: asp.net iis authorization