首页 文章

匿名访问aspx页面失败

提问于
浏览
1

我有一个使用表单身份验证的网站 . 在大多数情况下,我的网站需要身份验证才能执行任何操作 . 我的隐私声明页面是一个例外,匿名用户必须可以访问 . 该页面位于一个文件夹中,我在web.config中设置了位置路径信息,如下所示:

<location path="about">
    <system.web>
         <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
<location allowOverride="true">
    <system.web>
        <authentication mode="Forms">
            <forms name="FDAuth" 
                   cookieless="UseCookies" 
                   protection="All" 
                   loginUrl="login.aspx" 
                   requireSSL="false" 
                   slidingExpiration="false"></forms>
        </authentication>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

该配置允许匿名访问其他文件类型,但仍然提示登录aspx页面 .

换句话说,允许匿名访问此页面

www.mywebsite.com/about/privacy.asp

但如果我尝试访问此页面,我会转到login.aspx页面

www.mywebsite.com/about/privacy.aspx

如何允许匿名访问www.mywebsite.com/about/privacy.aspx,我需要做什么?

4 回答

  • 1

    只需删除 <location allowOverride="true"> 元素并在 <system.web/> 中配置 <authorization/>

    <location> 标签用于定义全局策略的例外,通常在 <system.web/> 中的 <authorization/> 中定义 .

  • 0

    还有一件事:添加行 <allow users="?"/>

    * 用户匹配任何经过身份验证的用户名,而 ? 则匹配所有未经身份验证的用户名 .

    所以,你会有这个:

    <location path="about">
        <system.web>
             <authorization>
                <allow users="*"/>
                <allow users="?"/>
            </authorization>
        </system.web>
    </location>
    
  • 0

    你应该试试:

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

    根据this MSDN example .

    请注意 ? 而不是用于匿名访问的 * .

    这应该可以解决您的问题,但如果没有,您可以指定特定的资源:

    <location path="about\privacy.aspx">
    
  • 0

    得到它了 . 问题是页面使用母版页 . 将母版页移动到about文件夹解决了问题 .

    感谢快速回复!

相关问题