问题:在 ASP.NET Web 窗体应用程序中,每个 Web 请求的 Session_ID 都不同。相关的 ASP.NET_SessionId cookie 未出现在 Firebug 中。
在研究时我发现 session Cookie 在 PostReleaseRequestState event 之前消失了被解雇了。
目前找到了一个自定义 session 状态模块实现的解决方案。请参阅SessionStateUtility Class (MSDN) 。虽然应用程序采用了这个示例,但它似乎解决了所有已知问题,但这个解决方案对我来说还不够干净,不是吗?如果是这样,这里可能有什么问题?
相关配置源部分如下所示:
<sessionState mode="InProc" stateConnectionString="***" sqlConnectionString="***" cookieless="false" timeout="20"/>
谢谢。
最佳答案
如本答案所述 https://stackoverflow.com/a/2874174/741695 ,在使用 session 对象之前,ASP .NET 不会为 session 数据分配存储。
简而言之,您可以在 Global.asax 中实现 Session_Start 并在 Session 对象中存储一些虚拟数据来修复其 SessionID,或者您可以在应用程序代码中的其他位置执行相同的操作。
希望这有帮助。
引用文献:
https://stackoverflow.com/a/2874174/741695
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx
关于asp.net - Web 请求不使用相同的 session 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21435147/