比方说,我有一个web.config中的以下内容:IIS与ASP.NET授权 - 保护静态文件的最简单方法?
<allow roles="Developers" />
<deny users="*"/>
这将锁定在访问的.aspx,.asmx和其他.NET类型的文件,但它仍然允许未经授权的用户打开像静态文件为image.jpg。我明白为什么当有人要求image.jpg(它不是.NET类型,IIS可以绕过它)时,为什么不询问web.config的授权信息,但是如何锁定整个应用程序?
建议我在网上找到包括:
- 创建问题和IIS/.NET将它捡起目录
<location>
项。 (它似乎没有。) - 您需要编写自己的ISAPI筛选器并将所有敏感文件的扩展映射到该映射。
- 您不需要编写自己的ISAPI筛选器 - 只需将扩展名映射到aspnet_isapi.dll即可。
- 您根本不需要编辑IIS,只需在web.config中为您的扩展创建一个httpHandler条目即可。 (我真的不想为应用程序中的每个扩展都这样做)。
这一切都不像我记得它在Apache中那样容易。有什么最简单的办法可以向访问者要求密码,并且不向任何没有它的用户提供任何文件(静态或非静态)?
ISAPI过滤器并没有太多乐趣,但它并不那么难,而且一旦你获得了基本代码以及其他许多其他真正有用的东西,你就会发现它。如果你不允许部署这种对于许多web开发者来说是这种情况的事情,那么它就是一个很好的例子。 – AnthonyWJones 2009-06-18 21:33:07