ASP.NET MVC 5 中使用Frameset中Session、Cookie值消失的问题完整解决方案

前言

最近这段时间在做一个项目,由于赶时间,我先完成其他的,对于相对麻烦的,就放到最后来完成。所有的事都完成了,但却有一个比较麻烦的事还一直没解决。就是在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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值