前言
最近这段时间在做一个项目,由于赶时间,我先完成其他的,对于相对麻烦的,就放到最后来完成。所有的事都完成了,但却有一个比较麻烦的事还一直没解决。就是在ASP.NET MVC 5中所使用的Session和Cookie。登录时赋值,然后在其他地方根本无法读取值,读出来的值全是空的。查遍所有网上资料,没有一个解决的。
下面列举网络资料解决方案:
只需要设置 P3P HTTP Header,基本百分之九十五以上相似。具体请参照:simenpeng的专栏的解决方案。也是网上大部分提供的解决方案,写得相对全。可能是我的环境因素有区别。对于博主的文章,肯定帮了不少人,必须值得肯定。下面介绍一下我碰到问题的解决方案。
环境:
1、硬件环境:Think Pad笔记本(几台,都差不多配置)
2、软件环境:Microsoft Visual Studio Ultimate 2013+ASP.NET MVC 5+Bootstrap-3.0.0 +JQuery-3.1.1+EasyUI 1.5.1+SignalR-2.1.2
原码
<!DOCTYPE html>
<html>
<frameset rows="10%,90%" border="0px">
<frame src="Header" noresize="noresize">
<frameset cols="12%,88%" border="1px">
<frame src="Menus" id="menus">
<frame src="Desktop" id="main">
</frameset>
</frameset>
</html>
经过各种各样的网络资料,包括官方的示例程序,结果都无法在其他地方获得Session和Cookie的值。
于是,用了三天左右的时间,专门研究所有涉及Session的类、方法、属性和配置文件,基本全试验了一遍。终于找到一个满意的解决方案:
解决方案
在Web.config文件中加入如下代码才完整解决
<system.webServer>
<modules>
<remove name="Session"/>
<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
</modules>
</system.webServer>