我建立了一个购物车,使用Session State在用户浏览商店时保留购物车数据。
如果我在购物车的第1步长时间不关闭浏览器窗口,然后点击“转到第2步”,我的操作会抛出错误,因为第2步操作假定会话没有过期且ShopCart对象处于正确状态。
我希望这种情况对我的用户更友好,但我认为我需要某种方式检测会话是否过期,以便在下一次请求时将它们引导到Step1。
我找到了下面的代码,它声称可以解决这个问题,但对我不起作用。
IsNewSession条件为true,但条件可能是:
如果我在购物车的第1步长时间不关闭浏览器窗口,然后点击“转到第2步”,我的操作会抛出错误,因为第2步操作假定会话没有过期且ShopCart对象处于正确状态。
我希望这种情况对我的用户更友好,但我认为我需要某种方式检测会话是否过期,以便在下一次请求时将它们引导到Step1。
我找到了下面的代码,它声称可以解决这个问题,但对我不起作用。
IsNewSession条件为true,但条件可能是:
if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0)) {
// handle expired session
}
这个函数始终返回 false,而且它从不处理无效的会话。我很困惑。
在 ASP.NET(和 MVC)中是否可能实现这种情况?