【问题标题】:using system.web.authorization settings in web.config to protect classic asp files?使用 web.config 中的 system.web.authorization 设置来保护经典的 asp 文件?
【发布时间】:2009-05-12 00:29:31
【问题描述】:
我有一个包含大量子文件夹层次结构和数千个经典 ASP 文件的虚拟目录,所有这些文件都在 NT 文件夹级别设置了不同的权限(不要问.. 摇头 )。
有没有什么方法可以使用它们自己的 web.config 设置所有这些虚拟目录,以便我可以通过在其中配置 system.web.authorization 参数来控制访问并取消文件夹级别的权限?
我已经尝试过,到目前为止只能在 asp.net 文件上进行这项工作,而不是经典的 ASP。
如果不可能,有人可以提供一些替代方案吗?
【问题讨论】:
标签:
asp.net
iis
asp-classic
web-config
【解决方案1】:
由于经典 ASP 不知道 ASP.NET 运行时,因为它是 a) 经典且 2) 不是 .NET,因此您不能使用 .NET 配置来管理权限。
你的选择是:
- 升级到 IIS7
- 将所有的 asp 页面重命名为 aspx
- 将您的 asp 处理程序更改为 aspnet_isapi.dll(即 .net 处理程序)
虽然 2 和 3 可能有效,但您需要完全测试这些页面以确保它们仍能按预期工作。
我想说最好的办法是只使用文件系统 ACL 来控制谁可以访问这些文件夹。仅仅因为你不了解他们并不意味着他们没有自己的位置。
【解决方案2】:
您可以使用通配符映射,以便所有文件类型都将由 IIS6 中的 ASP.NET 运行时处理;但是,即使启用了此权限,也不会通过 web.config 处理。经典和 .NET 中的 Windows 身份验证都使用文件权限来确定访问权限。