.net下导致Session失效的一种情况:js教本中使用window.open和window.showModalDialog时需要注意

摘要:
1.打开2。aspx中的window.showModalDialog。这三页以不同的方式打开。
在项目中碰到过一种情况先用window.open打开1.aspx1.aspx中用window.showModalDialog打开2.aspx2.aspx中用window.open打开3.aspx,那么在3.aspx中取不到Session中的值。

       于是我先做了一个default.aspx页面,向Session中存入值,在后面的三个页面中,分别去取Session中的值。三个页面的打开方式不一样,共6钟情况,测试结果如下:

       打开顺序

第一个页面

第二个页面

第三个页面

open/open/open

Y

Y

Y

modal/modal/modal

Y

Y

Y

open/modal/open

Y

Y

N

modal/open/modal

Y

NN

Open/modal/modal

Y

Y

Y

Modal/open/open

Y

N

N

       Open/modal/open指页面123的打开方式,用open打开页面1,页面1modal打开页面2,页面2open打开页面3

Y”表示可以取到Session中存入的值;“N”表示不能取到Session中存入的值。

测试环境win2000ie6.0+sp1,多数情况下会出现;win2003ie6.0+sp2,总是出现。

       modal打开页面后,在打开的页面再open打开新页面时,在新开的页面总会出现Session丢失的问题,所以,在脚本中使用window.showModalDialog打开页面后慎用window.open打开页面,会导致Session取不到。大家可以测试一下。

       深入考虑,是不是modal打开的页面再用open打开另一个页面时,ie认为这是新开了一个线程?总而言之,这是ie的一个bug吧。

 

      加上<base target="_self">就没有问题了,不过我不知道如果session值有多个的时候怎么办 

免责声明:文章转载自《.net下导致Session失效的一种情况:js教本中使用window.open和window.showModalDialog时需要注意》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jquery之json数据操作深入Vue下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用EntityFramework6连接MySql数据库(db first方式)

准备工具: VS2013、MySQL For VisualStudio 1.1.4、Connector/Net 6.8.3(百度网盘里) 程序包管理器执行命令: Install-Package EntityFramework Install-Package MySql.Data.Entity.EF6Install-Package MySql.Data.E...

PLSQL配置怎么连ORACLE

如果是windows的话,在服务里面就可以查服务要启动,监听也要启动!可以用lsnrctl命令查看监听! 首先你需要在我的电脑的属性里,找到环境变量,配置系统下面的path,看看里面指向的是哪里(我的电脑里就有oracle的多个版本)而且要在你的oracle的X:oracleproduct10.2.0db_1 etworkADMIN nsnames.ora...

7年,OpenStack从入门到放弃|送书

七年之痒这个词,大家经常说,不过起源,估计就不是谁都清楚。这是梦露的一部影片的名字,后来大家发现无论是企业,家庭,甚至政府,都在第七年时间段上面临各种麻烦。 OpenStack存在的问题,其实已经不是痒,就挠一下。基本上是已经无药可救。 Contents 1 逐步没落 2 都不挣钱 3 TC不作为 4 企业用户收益差 5 K8S 和 PaaS 6 技术不...

纹理映射 【转】

9.4 纹理对象 使用纹理对象来存储纹理数据的步骤: 1) 生成纹理对象名称 2) 将纹理对象绑定到纹理数据(包括图像数据数组和纹理属性), 即创建纹理对象. 3) 如果OpenGL实现高性能纹理工作集, 应检查是否有足够的空间来存储所有的纹理对象. 如没有足够空间, 应设置每个纹理对象的优先级, 以确保最常用的纹理留在工作集中 4) 绑定和重新绑定纹理对...

机器学习:决策树(二)——sklearn决策树调参

参数解析 参数 DecisionTreeClassifier DecisionTreeRegressor 特征选择标准criterion 可以使用"gini"或者"entropy",前者代表基尼系数,后者代表信息增益。一般说使用默认的基尼系数"gini"就可以了,即CART算法。除非你更喜欢类似ID3, C4.5的最优特征选择方法。 可以使用"m...

ADO.NET(内涵效率问题)

ADO.NET 为什么要学习ADO.NET呢? 之前我们所学只能在查询分析器里查看数据,操作数据,我们不能让普通用户去学sql, 所以我们搭建一个界面(Web Winform)让用户方便的操作数据库中的数据 什么是ADO.NET? ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类用类操作文件一样, Sys...