【问题标题】:how to restore session in asp.net如何在asp.net中恢复会话
【发布时间】:2013-09-06 14:46:13
【问题描述】:

我在 .net 4.0 中创建了一个网站,用户首先登录并重定向到仪表板页面,登录后用户面板中有 8 个页面,母版页面中有一个注销按钮。我想存储用户注销的页面以及下次登录时,他的会话将被恢复(重定向到他注销的同一页面)。 任何人都可以给我任何提示??

【问题讨论】:

  • “会话恢复”是指只希望用户自动返回上次离开的页面,还是还希望恢复会话值??
  • 我不确定会话是否是存储此信息的正确方式。我可能会在数据库中执行此操作,或者在 cookie/jStorage 对象中执行此操作,并在使用 JavaScript 登录时重定向..
  • @RoyDictus 我只希望用户自动返回上次离开的页面
  • 无论用户使用哪台机器/浏览器,您都想要吗?我的意思是,假设我今天在工作中使用您的应用程序,明天我在家中登录您的应用程序。然后会发生什么?
  • @RoyDictus 我想将会话值存储在数据库中,这样用户登录的位置无关紧要

标签: c# asp.net .net session


【解决方案1】:

您将会话与Sessions 混淆了...Session 是一个 ASP.NET 类,只要您在应用程序中激活了会话支持(默认情况下处于启用状态,并存储其值),该类可用于每个页面默认在内存中)。但是这些Sessions 超时了;在一段时间不活动后(例如 15 分钟),服务器会清除内存。

您的意思只是一个会话:用户登录、执行操作然后注销。

为了在他注销时自动返回到他所在的最后一页,您需要做的就是让“注销”按钮的代码将Request.Uri.AbsoluteUri 字符串存储在数据库中。因此,只需在您的代码隐藏中将该按钮的 Click 事件处理程序与用户 ID 一起存储该值。

然后登录按钮的 Click 事件背后的代码可以简单地检索该值并将 Response.Redirect 检索到该 Uri。

【讨论】:

  • 感谢 Roy,您的回答正是我想要的,感谢您更好地解释答案。
【解决方案2】:

你可以使用:

Request.Url.AbsoluteUri

并将其存储在会话中。

Session["LastVisitedPage_" + userId] = Request.Url.AbsoluteUri;

【讨论】:

  • 感谢 Darren 为我所做的回答工作,roy 也为您的回答提供了更好的解释
【解决方案3】:

您可以使用 Request.Url 来获取当前页面的 url。当用户单击注销按钮时,将当前 url 存储在数据库中。下次用户登录时,从数据库中检索 url 并重定向到它。

【讨论】:

  • 感谢瑞恩重播
【解决方案4】:

退出:

 Session.abandon();

存储会话:

 Session["name"] = Request.Url.AbsoluteUri;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2016-06-25
    相关资源
    最近更新 更多