代码之家  ›  专栏  ›  技术社区  ›  dnord

IIS与ASP.NET授权-保护静态文件的最简单方法?

  •  4
  • dnord  · 技术社区  · 15 年前

    假设我在web.config中有以下内容:

    <allow roles="Developers" />
    <deny users="*"/>
    

    这会锁定对.aspx、.asmx和其他.NET文件类型的访问,但仍允许未经授权的用户打开image.jpg等静态文件。我理解为什么当有人要求image.jpg(它不是.NET类型,IIS可以绕过它)时,web.config不会被要求提供授权信息,但我如何才能锁定整个应用程序?

    • 创建一个 <location> 有关目录的条目,IIS/.NET将获取该条目。(似乎没有。)
    • 您需要编写自己的ISAPI过滤器,并将所有敏感文件的扩展名映射到该过滤器。
    • 您不需要编写自己的ISAPI过滤器,只需将扩展映射到aspnet_ISAPI.dll即可。
    • 您根本不需要编辑IIS,只需在web.config中为扩展创建一个httpHandler条目。(我真的不希望对应用程序中的每个扩展都这样做。)

    2 回复  |  直到 15 年前
        1
  •  2
  •   RichardOD    15 年前

    一个很好的简单方法是升级到IIS 7-它现在有一个集成的管道。

        2
  •  2
  •   MatthewMartin muthu    15 年前

    使可能 wild card mapping for IIS 6 . 这将通过ASP.NET管道发送所有文件,保证对所有文件进行表单身份验证。它会降低性能(不知道有多大)。

    对于IIS 5,嗯,升级到IIS 6。

    您可以列出4个想法:

    • 谁想编写isapi过滤器?除非你有IIS7,否则你不可能用有管理的语言轻松地做到这一点。谁想写一个C++ ISAPI过滤器?

    • 通配符映射不适用于上述警告(性能)