【发布时间】:2014-05-06 19:49:12
【问题描述】:
我正在尝试使用全局 asax 上的 session_end 方法保存以 sql server 结束的用户会话数据。
问题是 im saving user name incookies 的值,当会话结束时它无法达到这个值,引用为空,
我的问题是我可以通过什么方式保存会话使用的用户名,以便稍后我可以将其放入session_end 方法中。
【问题讨论】:
我正在尝试使用全局 asax 上的 session_end 方法保存以 sql server 结束的用户会话数据。
问题是 im saving user name incookies 的值,当会话结束时它无法达到这个值,引用为空,
我的问题是我可以通过什么方式保存会话使用的用户名,以便稍后我可以将其放入session_end 方法中。
【问题讨论】:
用户登录后,会话开始。 那时您可以在 cookie 中存储价值
HttpCookie aCookie = new HttpCookie("userName");
Response.Cookies["userName"].Value = "fooName";
添加 cookie
Response.Cookies.Add(aCookie);
【讨论】:
您将需要(也)将这些值存储在 Session 中。
您无法从 Session_End 访问 cookie,因为该事件(默认情况下)在最新请求完成 20 分钟后触发。所以现在你没有 HttpContext 了。
您真的想要在存储之前这么久吗? Session_End 不是很可靠,仅适用于“InProc”会话。
【讨论】:
s not important to me if a value is taken from cookies,im 试图在 sql server 中保存退出的日期时间和用户名,如果可以用另一种方式进行,我会这样做