【问题标题】:Forms Authentication not Applying to static files表单身份验证不适用于静态文件
【发布时间】:2015-07-06 05:21:34
【问题描述】:

我已经在我的网站上成功设置了一个测试区域,该测试区域使用 iis 8 上的表单身份验证进行了身份验证。我在与 asp.net 的集成模式下使用它,据我所知,这意味着我使用正确的 web.config 文件能够使服务器在所有内容上使用 asp.net 身份验证,而不仅仅是 URL。如果我尝试导航到一个我没有输入凭据的页面,它会返回错误 403,这正是我所期望的。但是,如果我准确地输入存储在站点上的文件的路径,它会下载文件而无需提供凭据。这是我当前的顶级 web.config:

<?xml version="1.0"?>
<configuration> 
<system.web>
    <compilation debug="false">
    </compilation>

    <authentication mode="Forms">
        <forms name=".ASPXFORMSAUTH" loginUrl="default.aspx" />
    </authentication>
    <authorization>
        <allow users="*" />
    </authorization>
</system.web>

<location path="staff/test/test">
    <system.web>            
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

<system.webServer>
    <modules>
      <remove name="FormsAuthenticationModule" />
      <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />
      <remove name="UrlAuthorization" />
      <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule"  />
      <remove name="RoleManager" />
      <add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
      <remove name="DefaultAuthentication" />
      <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
    </modules>
</system.webServer>

/staff/test/test 区域中有一个 word 文档。如果我在浏览器中输入www.website.com/staff/test/test/test.doc,就会下载文件。

我应该更改什么来保护该文件?

【问题讨论】:

  • 您可以尝试将其添加到您的模块节点 runAllManagedModulesForAllRequests="true" 吗?
  • @Sushil 虽然这会起作用,但这不是必需的,而且是矫枉过正。 This answer 展示了如何通过 ASP.NET 管道放置特定的文件类型,以便可以通过 web.config 保护它们。
  • 感谢@MikeSmithDev。 httphandler 总是最适合这种情况。
  • 如果您需要进行更高级的处理,另一种方法-stackoverflow.com/a/19124733/1810243

标签: c# asp.net iis web-config


【解决方案1】:

感谢您的回复。最后证明是网站根目录的安全权限。我最初粘贴在这里的代码运行良好,我让 server\users 组具有读取权限,而我只需要 iis_iusers 具有读取权限。

再次感谢

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2016-08-04
    • 1970-01-01
    • 2018-11-07
    • 2015-01-19
    • 1970-01-01
    相关资源
    最近更新 更多