【问题标题】:log out of asp.net site automatically when forms authentication has expired表单身份验证过期时自动注销 asp.net 站点
【发布时间】:2016-06-29 10:53:43
【问题描述】:

我花了好几天的时间试图找到这个问题的答案,所以如果在某个地方有直接的答案,我提前道歉!我看了看,找不到任何对我有用的东西。

我希望我的网站在表单身份验证超时到期后自动注销用户。它目前所做的是使身份验证过期,但用户在他们提出请求/单击链接之前一直处于登录状态。然后这将触发重定向并将它们带回登录页面。

我曾尝试使用 javascript 来查看剩余的超时时间,然后检查它是否已过期,然后调用 logoff() 操作,但是这些 javascript 调用本身就是“请求”,因此该站点将永远不会注销。

这是表单身份验证的 web.config 设置:

<authentication mode="Forms">
      <forms loginUrl="~/Account/RedirectLogin" name=".ASPXAUTH" timeout="30"/>
    </authentication>

谢谢!

【问题讨论】:

标签: asp.net asp.net-mvc formsauthentication


【解决方案1】:

在您的母版页中,您可以定义一个特殊的标头标签,该标签将在会话到期后重定向用户:

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    this.PageHead.Controls.Add(new LiteralControl(
       String.Format("<meta http-equiv='refresh' content='{0};url=/Login.aspx'>", 
       Session.Timeout * 60 + 1)));
}

【讨论】:

  • 嗨 Lesmian,我的 mvc 站点上没有母版页。
  • 在这种情况下,您可以为您的页面创建基类并将我的代码放入其中。然后从该基类派生您的 p[ages。
猜你喜欢
  • 1970-01-01
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
相关资源
最近更新 更多