我目前正在阻止匿名用户访问我的根应用程序。
/web.config
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
但允许匿名访问公共资源(图片,CSS等):
<location path="Images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
现在,我想添加一个匿名用户可以访问的虚拟目录。我添加了一个基于Images路径的配置,但每当我尝试访问该位置时,我都会被重定向到登录页面,并将ReturnURL
设置为虚拟目录。
<location path="virtualDirectory">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
此外,我尝试在我的虚拟目录的web.config中指定全局授权,但是得到一个错误,说我只能拥有一次
/virtualDirectory/web.config:
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
当我的root应用程序阻止匿名访问时,如何允许匿名访问虚拟目录?
答案 0 :(得分:4)
在您的全局web.config中封装
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
与
<location path="." inheritInChildApplications="false">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
这意味着 - 授权仅在root应用中强制执行,而不是针对子应用。
答案 1 :(得分:3)
一些注释。
星号(*)代表所有身份。
问号(?)代表匿名身份。
理想情况下,您无需在全局web.config中设置允许对virtualDirectory的匿名用户进行身份验证。
转到IIS,在您的虚拟目录&gt;下;选择身份验证&gt;启用匿名身份验证。
参见
答案 2 :(得分:0)
在您的全球web.config中删除
<location path="virtualDirectory">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
然后转到IIS管理器并
在虚拟目录主页区域中,双击身份验证
右键单击“匿名身份验证”,然后单击“启用”
答案 3 :(得分:0)