问题:在ASP.NET Web窗体应用程序中,每个Web请求的Session_ID都不相同。相关的ASP.NET_SessionId cookie没有出现在萤火虫中。
在研究过程中,我发现Session Cookie会在触发PostReleaseRequestState事件之前消失。
当前找到了一种定制会话状态模块实现的解决方案。请参阅SessionStateUtility类(MSDN)。虽然被应用程序接受,但该示例似乎可以解决所有已知问题,但是这种解决方案对我而言还不够干净,不是吗?如果是这样,这可能是个问题吗?
相关的配置源部分如下所示:
<sessionState mode="InProc" stateConnectionString="***" sqlConnectionString="***" cookieless="false" timeout="20"/>
谢谢。
如此答案https://stackoverflow.com/a/2874174/741695中所述,ASP .NET在使用会话对象之前不会为会话数据分配存储。
简而言之,您可以在Global.asax中实现Session_Start并将一些伪数据存储在Session对象中以修复其SessionID,也可以在应用程序代码的其他地方进行相同的操作。
希望这可以帮助。
参考:
https://stackoverflow.com/a/2874174/741695
http://msdn.microsoft.com/zh-CN/library/system.web.sessionstate.httpsessionstate.sessionid.aspx
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句