asp.net - Web 请求不使用相同的 session 标识符

标签 asp.net session-cookies session-state

问题:在 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/

相关文章:

asp.net-mvc-3 - 丢失我的 session 变量

c# - 设置最大 session 超时时间有什么缺点或限制吗?

c# - ASP.NET 5(核心): How to store objects in session-cache (ISession)?

c# - 如何将 cookie 容器与 RestSharp 和 ASP.NET session 一起使用?

c# - 在 n 列之间划分内容的最佳方法是什么?

php - 在从 php session 注销期间取消设置 cookie 有什么意义?

node.js - 在 Express 应用程序的默认 connect.sid 浏览器 cookie 上设置域

ASP.NET Core session 超时

c# - asp.net mvc Azure 云服务,我应该使用 TempData 还是 Sessions 来保存一些用户信息或其他信息

c# - 使用 Session.SyncRoot 锁定每个 session 有哪些危险?