【问题标题】:How to restrict access to static files in IIS 7.5 Classic mode如何在 IIS 7.5 经典模式下限制对静态文件的访问
【发布时间】:2013-02-03 12:11:00
【问题描述】:

我需要在几个 ASP.NET 应用程序中限制对静态 HTML 文件的访问。由于这些应用程序实现了自己的身份验证机制,看起来我只需要让这些文件通过 ASP.NET 请求处理管道而不是“标准”IIS 静态内容处理。一些应用程序是相对现代的 ASP.NET MVC 应用程序,并在 IIS 7.5 上使用集成管道,看起来为它们做我需要的事情并不是什么大不了的事。但还有一些是使用经典管道模式 (IIS 7.5) 的旧版 ASP.NET 网站,目前由于某些原因无法将它们移至集成管道。

UPD: 问题是应用程序包含一些静态文件(帮助页面),未经授权的用户可以在键入直接 URL 时看到它们。而我的任务是让应用程序在这种情况下显示登录页面。

在 Web.config 中添加处理程序:

<add name="StaticHTMLHandler" path="*.htm*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" />

导致我只是得到这个异常:

[HttpException (0x80004005): Failed to Execute URL]
    System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl(String url, String method, String childHeaders, Boolean sendHeaders, Boolean addUserIndo, IntPtr token, String name, String authType, Byte[] entity, AsyncCallback cb, Object state) +4136452
    System.Web.HttpResponse.BeginExecuteUrlForEntireResponse(String pathOverride, NameValueCollection requestHeaders, AsyncCallback cb, Object state) +653
    System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state) +279
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +12551795
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

那么我做错了什么?谁能指出我正确的方法?

【问题讨论】:

    标签: asp.net iis-7 static-content


    【解决方案1】:

    我从未尝试过你的方法,但我也有一些 FW 1.1,经典的 asp。和现代网络应用程序混合在我的网络服务器上。我所做的是为每个框架创建一个单独的应用程序池。我在我创建的 1.1 经典模式应用程序池上运行 1.1,并在另一个应用程序池上运行现代应用程序:集成 fw 4.0。经典的 asp 东西超出了这个问题的范围。每个应用程序池都是它自己的进程,因此使用更多应用程序池并没有真正的缺点,例如,每个应用程序 1 个应用程序池是完全可以接受的安全策略。

    【讨论】:

    • 当然,我们所有的应用程序都使用自己的应用程序池 - 每个应用程序一个,因此它们在不同的进程中运行。问题是应用程序包含一些静态文件(帮助页面),未经授权的用户可以在键入直接 URL 时看到它们。而我的任务是让应用程序在这种情况下显示登录页面。
    【解决方案2】:

    所以最终没有找到用经典管道模式对静态文件进行身份验证的实用方法。最后我们决定更新旧的遗留平台,使其与集成管道模式一起工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-06
      • 2014-06-03
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多