表单身份验证不适用于静态文件

时间:2015-04-27 16:24:00

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

我已经在我的网站上成功设置了一个测试区域,该区域使用iis 8上的表单auth进行了身份验证。我在asp.net的集成模式下使用它,据我所知应该意味着使用正确的web.config文件我能够让服务器在所有东西上使用asp.net auth而不仅仅是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,则会下载该文件。

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

1 个答案:

答案 0 :(得分:0)

感谢您的回复。最后,它结果是网站根目录的安全权限。我最初粘贴在这里的代码运行正常我有服务器\ users组具有读取权限,因为我只需要具有读取权限的iis_iusers。

再次感谢