Chrome 119.0.5933.70版本SessionStorage不显示及.NET会话变量求助
解决方案
先明确:.NET Session变量本身不会出现在Chrome开发者工具中
.NET的Session["mysessionvariable"]是存储在服务器端的,浏览器端只会存储用于标识会话的ASP.NET_SessionId Cookie(仅当使用Cookie模式会话时)。你在Chrome开发者工具里看不到具体的Session变量值是正常的——这些数据不会被发送到客户端。
如果你的需求是确认会话标识有效性或排查会话相关问题,可按以下步骤操作:
1. 检查SessionID Cookie是否存在
打开Chrome开发者工具(F12),切换到「Application」标签:
- 展开左侧「Storage」→「Cookies」→ 选择你的站点域名
- 查看是否存在
ASP.NET_SessionId条目,确认其值非空且有效
2. 验证会话模式配置
若项目使用无Cookie会话模式(如URL重写),浏览器端不会有SessionID Cookie,开发者工具自然看不到相关内容。可检查项目web.config的配置:
<system.web> <sessionState mode="InProc" cookieless="UseCookies" /> <!-- 确认cookieless属性值 --> </system.web>
若cookieless设为UseUri或AutoDetect,SessionID会附加在URL中,而非存储在Cookie里。
3. 排查Chrome 119的隐私/安全设置变化
Chrome 119可能调整了Cookie默认处理规则,导致SessionID Cookie被拦截:
- 打开Chrome设置 → 隐私和安全 → Cookie及其他网站数据
- 确认未勾选「阻止第三方Cookie」,或已将你的站点添加到「允许的网站」列表
- 点击地址栏锁形图标 → Cookie → 确认
ASP.NET_SessionId权限为「允许」
4. 服务器端验证与调试
既然代码能正常读取Session变量,可在服务器端输出SessionID验证会话有效性:
在控制器中添加调试代码:
public ActionResult CheckSession() { var sessionId = Session.SessionID; var myVar = Session["mysessionvariable"]; return Content($"SessionID: {sessionId}, mysessionvariable: {myVar}"); }
访问该Action,确认SessionID与浏览器端(若有Cookie)的ASP.NET_SessionId值一致。
5. 重置Chrome开发者工具设置
若怀疑是DevTools配置异常:
- 打开DevTools → 点击右上角设置图标(⚙️)→ 滚动到最底部 → 点击「恢复默认值并重新加载」
内容的提问来源于stack exchange,提问作者Robert Carlson
相关产品推荐
相关产品推荐

