web.config - 拒绝所有用户到特定文件夹和子目录,但已验证的角色除外

时间:2015-05-05 18:21:47

标签: iis-7 web-config directory

我在尝试阻止所有用户/连接访问下载文件夹“文件”及其中的所有子文件时遇到问题。我只想允许特定角色中的经过身份验证的用户访问这些文件。 files文件夹在root下。 ./web.config ./files/subfolder1/files in here

我的web.config我有这个

<location path="files" allowOverride="false">
<system.web>
  <authorization>

    <allow roles="Admin, Fieldworker, Supervisor, Accounting" />
     <deny users="*" />

  </authorization>  
</system.web>

问题不仅是所有用户都被屏蔽了,而且管理员和其他角色中经过身份验证的用户也被屏蔽了。 如果我在上面添加,那么我的“admin”用户可以访问这些文件,但是任何未经身份验证的用户都可以...我不知道为什么会允许其他用户访问?

我的网络服务器是IIS7。 web.config中的其他相关条目

<modules runAllManagedModulesForAllRequests="false">
  <remove name="ScriptModule" />
  <add name="ScriptModule" preCondition="managedHandler"   type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0,   Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  

    <add  name="FormsAuthenticationModule"    type="System.Web.Security.FormsAuthenticationModule" />
    <remove  name="UrlAuthorization" />
    <add  name="UrlAuthorization"   type="System.Web.Security.UrlAuthorizationModule"  />
    <remove  name="DefaultAuthentication" />  
    <add  name="DefaultAuthentication"  type="System.Web.Security.DefaultAuthenticationModule" />


</modules>

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这似乎与以下内容重复:how to protect uploaded documents from direct access in web forms

您需要使用<location>元素:

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