在IIS8下使用表单身份validation来保护静态内容

我有一个IIS(Windows 2012)服务器上托pipe的ASP.NET(.Net 4)站点,并具有表单身份validation。 一切工作正常。

我现在想介绍一些静态内容–HTML“帮助文件” – 但我不希望这些是“深层链接”。 换句话说,这些页面只有在用户身份validation时才可用。

谷歌周围,我已经find了一些如何实现这一目标的参考。 所以在我的web.config中,我已经(删除所有不感兴趣的东西):

<compilation> <buildProviders> <add extension=".html" type="System.Web.Compilation.PageBuildProvider" /> <add extension=".htm" type="System.Web.Compilation.PageBuildProvider" /> </buildProviders> </compilation> 

  <handlers> <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx,*.html" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx,*.html" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> </handlers> 

…但我仍然可以访问HTML文件时,未经过身份validation。

任何人都可以提出什么是错的,我怎样才能保护静态的HTML内容?

  • 池的IIS进程ID
  • IIS Express 7.5可以运行applicationhost.config中定义的多个站点/ appools吗?
  • 监视IIS服务器
  • 监视ASP.NET会话状态variables
  • 生产服务器上发生“405方法不允许”,在开发服务器上正常
  • IIS维护页面为多个站点
  • 3 Solutions collect form web for “在IIS8下使用表单身份validation来保护静态内容”

    确保IIS在集成模式下运行,以便以下工作。

    下面是一个完整的Web.config文件,您可以将其放置在一个子文件夹中,并假定已经设置了身份validation(如窗体身份validation)。
    或者,提取授权处理程序部分,并将其添加到您的根Web.config

     <?xml version="1.0"?> <configuration> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> <system.webServer> <handlers> <add name="HTML" path="*.html" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" /> <add name="CSS" path="*.css" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" /> <add name="JS" path="*.js" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" /> <add name="PNG" path="*.png" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" /> </handlers> </system.webServer> </configuration> 

    您可以指定位置标记,并将整个文件夹列入白名单。

     <location path="YourFiles"> <system.web> <authorization> <allow users="?" /> </authorization> </system.web> </location> 

    你尝试过处理程序吗?

    把它放在你的Web.Config文件中,看看是否有帮助。

    PS未testing。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.