asp.net froms身份验证始终重定向

时间:2011-09-08 09:32:38

标签: asp.net forms authentication

我的网站应该有一些部分,只有在用户通过身份验证时才会看到,某些部分对每个人都是可见的。

无论访问哪个页面,表单身份验证始终会将用户重定向到登录页面。这是否意味着我不应该使用表单身份验证?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用< location> web.config中的元素,用于设置受保护的页面。您需要从整个网站中删除授权,并为< location>中的每个受保护网页设置授权。元件。
常见的方法是将所有受保护的页面放在单独的文件夹中,并指定该文件夹的位置路径。
另一个是拥有一个继承System.Web.Page的类,并在Init事件中将用户重定向到某个页面,如果未经过身份验证。然后每个页面都应继承此页面。

<system.web>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
  </system.web>
  <location path="public">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

答案 1 :(得分:0)

对我来说,问题是MachineKey。如果正在执行该操作,则需要解密/加密cookie (例如:Web场)。因为应用程序无法解密cookie,即使它来回传递,应用程序的行为就像cookie甚至不存在一样。将此设置添加到web.config为我修复了它:

<machineKey compatibilityMode="Framework20SP2" validationKey="some_hard_coded_long_key" decryptionKey="another_hard_coded_long_key" validation="SHA1" />

有关machinekey的更多信息,请参阅此文章。