如何保护在我的ASP.NET 4 Web App中动态创建的HTML文件?

时间:2014-06-03 20:03:00

标签: html asp.net forms authentication

我在带有IIS 7的Windows 8 R2服务器上运行ASP.NET 4应用程序。该应用程序在子目录中动态创建HTML文件" Reports"在应用程序的根目录中。我试图通过对web.config文件进行以下更改来使用现有的Forms身份验证来保护这些文件:

将这四行添加到<compilation>部分:

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

将这四行添加到<system.web>部分:

<httpHandlers><br />
  <add verb="*" path="*.htm" type="System.Web.UI.PageHandlerFactory" /><br />
  <add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory" /><br />
</httpHandlers><br />

尝试以下两个

"<handlers>" in the "<system.webServer>" section:<br />
<handlers><br />
      <add name="HTML" path="*.html" verb="GET, HEAD, POST, DEBUG"   type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" /><br />
      <add name="HTM" path="*.htm" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" /><br />
</handlers><br />

<handlers><br />
      <add name="HtmlHandler-Integrated" path="*.html" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" requireAccess="Script" preCondition="integratedMode" modules="ManagedPipelineHandler" /><br />
      <add name="HtmHandler-Integrated" path="*.htm" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" requireAccess="Script" preCondition="integratedMode" modules="ManagedPipelineHandler" /><br />
</handlers><br /><br />

最后,我添加了<location>标记来指定&#34;基于角色的&#34;文件夹的安全性:

  <br />
  <location path="Reports"><br />
    <system.web><br />
      <authorization><br />
        <allow roles="Administrator, Base User" /><br />
        <deny users="*" /><br />
      </authorization><br />
    </system.web><br />
  </location><br /><br />

这些设置适用于未经身份验证的用户,但会产生错误&#34;文件&#39; .... htm&#39;没有预先编译,也不能被要求。&#34;对于从应用程序动态创建的HTML文件。

需要进行哪些其他更改才能保护这些&#34; html&#34;来自未经身份验证的用户的文件?

谢谢!

0 个答案:

没有答案
相关问题