【问题标题】:Implement logout on every page在每个页面上实现注销
【发布时间】:2017-08-15 23:37:33
【问题描述】:

我想在我的网页的每个视图上实现 logout 选项。为此,我将 null 分配给了我的 session 变量。并删除 缓存 中的数据。但我研究了从缓存中删除数据会在网络服务器上添加一些额外的负担,因为没有数据存储在缓存中...... 那么,有什么可以替代这个问题。

【问题讨论】:

  • 您想在每个页面中提供一个退出按钮,否则用户将在到达每个页面后自动退出??
  • 要实现注销,可以使用母版页。单击注销后,您清除会话并重定向到登录页面
  • 我想在每个页面上实现注销@BasantaMatia
  • 你是完全正确的@Vignesh,但问题是数据存储在缓存中,我不想要这个。
  • 你为什么要缓存,你不能单独使用会话的帮助

标签: c# asp.net-mvc web logout


【解决方案1】:

创建一个_Layout 页面,并保留您的登录/注册/注销。您可以通过创建默认的 Web MVC 应用程序来检查,并查看登录/注册/注销在每个页面中的呈现方式。

有很多方法可以使用 java 脚本来清理缓存。 我喜欢这种方式,

<script>
 function ClearHistory()
  {
    var backlen = history.length;
    history.go(-backlen);
    window.location.href = loggedOutPageUrl //Pass your Index Page
  }
</script>

否则最简单的方法就是在 LogOff() 方法中清除缓存,如下所示,

{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
return RedirectToAction("Login");
}

请检查这个Link 清除缓存的方法有很多种,这样后退按钮在注销后将不起作用。

【讨论】:

    猜你喜欢
    • 2019-05-10
    • 2012-01-09
    • 2016-01-28
    • 2017-06-03
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多