我在尝试阻止所有用户/连接访问下载文件夹“文件”及其中的所有子文件时遇到问题。我只想允许特定角色中的经过身份验证的用户访问这些文件。 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>
提前感谢您的帮助!
答案 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>