对于每个请求,ASP.NET会话都是新增的,除非您写下了一些内容
问题描述:
我需要唯一的会话标识,但每个标识都是新的,除非您在其中写入内容。 该修补程序在页面加载方法中看起来像这样的Session["stubkey"] = "fsdufhusd"
。 这对我来说很奇怪。有没有什么办法可以初始化会话,或者我可能会在配置上做错误的事情?对于每个请求,ASP.NET会话都是新增的,除非您写下了一些内容
在此先感谢。
答
的SessionID
文档建议同样的工作,你身边正在使用:
当使用基于cookie的会话状态, ASP.NET不为 会话数据分配存储,直到Session对象 是用过的。结果,为每个页面请求 生成新的会话ID ,直到访问会话对象。 如果应用程序需要在整个会话静态 会话ID,您 可以实现在 Session对象在应用程序的 Global.asax文件,并存储数据在session_start 方法来解决会话ID, 或者你可以使用 您的应用程序的另一部分中的代码来显式将 数据存储在Session对象中。
答
您不需要在page_load上初始化会话。您可以像这样初始化Global.asax上的会话
protected void Session_Start(Object sender, EventArgs e)
{
Session["init"] = 0;
}