【问题标题】:Forms authentication not working as expected表单身份验证未按预期工作
【发布时间】:2011-09-01 12:20:55
【问题描述】:

我是第一次尝试使用表单身份验证。这就是我的 web.config 中的内容:

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" name="Login" slidingExpiration="true" timeout="30" path="/">
  </forms>
</authentication>
<authorization>
  <allow users="*" />
</authorization>

我正在处理的网站实际上不需要任何身份验证,因为该页面无需登录即可访问。这就是我允许所有用户的原因。我对此很陌生,所以可能有一些明显的我做错了,但所有页面似乎都重定向到 Login.aspx,即使我允许所有用户。

非常感谢所有帮助。谢谢。

更新: 作为一个答案,我将代码更改为以下(将 * 更改为?),但我仍然遇到同样的问题:

<authorization>
  <allow users="?" />
</authorization>

【问题讨论】:

    标签: asp.net authentication web-config forms-authentication authorization


    【解决方案1】:

    Asterisk 代表任何经过身份验证的 用户,不包括匿名用户。使用问题允许匿名用户:

    <allow users="?" />
    

    【讨论】:

    • 谢谢。我已将 * 更改为 ?但我仍然有同样的事情发生。
    • 这不是简单的阅读,而是帮助您的良好开端。这些天我正在使用 MVC,并且永远不会回到网络表单。链接:asp.net/security/tutorials/…
    • 您的 web.config 中应该有如下所示的内容: system.web>
    • 它不会让我在答案框中发布它
    • @Leah,你能发布你的web.config 文件吗?另外,您使用 IIS 还是 Cassini 开发 Web 服务器?
    【解决方案2】:

    我来到这个页面时遇到了同样的问题,发现 5 年后这个问题一直没有得到正确的回答。你需要在 web.config 中指定以下内容:

     <authorization>
         <deny users="?" />
         <allow users="*" />
     </authorization>
    

    意味着您拒绝所有匿名用户访问,并允许所有经过身份验证的用户访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 2018-10-22
      • 2018-01-27
      • 2016-01-08
      • 1970-01-01
      • 2019-09-01
      相关资源
      最近更新 更多