cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失


不知大家是否遇到过如此的尴尬:

当你的页面认证采用基于Cookie的方式,例如form,windows集成认证时,如下操作后有时认证失效,Authentication (用户验证信息)丢失,需要再次登录
系统正常登录后:

第一个页面(PageA.htm):window.showModalDialog()后,弹出第二个页面(PageB.htm)

第二个页面(PageB.htm):window.open()后,弹出的窗口(PageC.htm)有时会跳转到登录页面

这应该是由于不同的页面存在于不同的进程,导致了身份信息不同步,发生了认证失效,然而这是有一定概率发生的,经过MS顾问的帮忙,终于找到了方法:
概括讲就是,在showModalDialog()时,将window作为对象参数传入PageB.htm,在PageB中,用这个参数去open(),这样问题就解决了
具体如下:
-----------PageA.htm--------------
...
var obj = new Object();
obj.myTestWindowA = window;//将这个window存入对象参数中
window.showModalDialog("PageB.htm",obj,"");
...
----------------------------------

-----------PageB.htm--------------
...
var obj = window.dialogArguments;//获取上个页面的参数
obj.myTestWindowA.open("PageC.htm");//用上个页面传过来的参数打开下一个页面
...
----------------------------------
经测试,没有再出现身份丢失现象,大功告成了!
细心的朋友会发现,这样的操作会导致,在PageC.htm中由于opener不是PageB.htm而是PageA.htm了,所以无法用window.opener与PageB.htm进行通信,而open()又无法传递对象参数,慌了!
不过幸好在javascript中,对象是一颗大树,你可以在它的枝杈上挂任何东西,所以,我们为了PageC.htm能与PageB.htm通信,对PageB.htm改造 如下:
-----------PageB.htm--------------
...
var obj = window.dialogArguments;//获取上个页面的参数
var obj.myTestWindowA.myTestWindowB = new Object();
obj.myTestWindowA.myTestWindowB = window;//将PageB的window挂在PageA的window枝干下
obj.myTestWindowA.open("PageC.htm");//用上个页面传过来的参数打开下一个页面
...
----------------------------------
如此,便可在PageC中,通过window.opener.myTestWindowB来与PageB页面的对象通信,例如 window.opener.myTestWindowB.document.getElementById("TextBox1").value="OK"

注:
1.这也许只是一种情况,可能先open再showModalDialog也有可能导致身份信息丢失,但大家只要传那个没有问题的window到下一页面,问题就能迎刃而解。

(丢失情况请参见http://www.ourac.net/read.php?tid=45123&fpage=2
2.也有可能在Session时发生,请参见http://support.microsoft.com/default.aspx?scid=kb;EN-US;196383



相关阅读:
html 标签 dl dt dd使用说明
AJAX在VS2005中的简单应用
在Win2003/XP安装光盘中集成RAID驱动 不用软驱装RAID/SATA/SAS驱动
解读SQL Server 2008的新语句MERGE
CSS教程:网页中英文字体的设置
javascript[对象.属性]集锦(建议加入精华区
将jQuery应用于login页面的问题及解决
DHTML Slide Show script图片轮换
oracle实现递归查询
Linux系统内核 2.6.28 五大特性
网页开发人员必须知道的10个不常用HTML标签
JavaScript在ASP中实现掩码文本框
Vista用Defrag命令整理磁盘碎片
学习WEB标准心得:网页重构的思路
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 人生哲理语句 喝酒女人不一般,女人不喝一般酒 七夕空间伤感说说时间久了,什么都会褪色 在区农村土地承包仲裁委员会成立大会上的讲话 中学生诗歌精选:我和草原有个约定 泄露考试答案的检讨书 小蜗牛春游的故事 县委书记年度述职述廉报告 父亲啊,你是我心中永远的痛作文1000字 高中作文大全:要怎么才能感谢您 喜剧小品剧本;山里汉子 2016回家工作辞职报告范本 大笑穿越 畅想中国梦-国旗下讲话 大约在冬季400字 2016年5月预备党员入党转正申请书 十一、财神爷岳父 亲爱的,你去哪里呢?好想你 相信自己能改变世界 彩蝶公主2 欠爱 乔布斯传1000字读后感 切尔社区“庆国庆 2014县司法局半年工作总结 我们不是“官二代”或“富二代” 感情,不是失去后才去拿来珍惜的 【中考语文备考微课视频】口语交际:话表兼顾 多点开花(张艳) 升初一暑假计划作文 因为当初是我,所以一直执着 橙色的想象 2016英语工作总结 父爱不如母爱那样体贴入微,随处可见,他一般是埋在心底 两项法规心得体会:学用结合 以两项法规推进从严治党 大海变黑了 先进性教育分析评议与整改提高资料(行政审批服务版)例1 最经典的心情短语:不是幸福太少,只是我们不懂把握。 2012-2013年度文艺部个人工作总结 我的价值观600字作文 新农村建设工作进展情况的调研报告 正能量早安心语:没有可不可以,只有愿不情愿 村干部述职报告500字 云檀经典语录 超市250字 2015公司副经理述职报告 逗号作文750字 初中初一作文650字:成长中的天空 中心党建工作计划 入党的积极分子在党校学习的心得体会 这到底算什么 那女子,潜伏着眷恋的气息 走,烧烤去

Copyright © 2016 phpStudy |