立即学习“PHP免费学习笔记(深入)”;
希望对那些正好遇到此问题的人有点帮助。下面是asp.net的源代码,可以下载.
window.open打开窗口Session丢失
立即学习“PHP免费学习笔记(深入)”;
window.open虽然很不讨人喜欢,但它有时候又有一定的用处,现在很多办公自动化系统(OA),
为了给用户更大的操作空间,都在用户登陆以后用window.open打开一个只有标题栏的窗口。
但是在open出来的窗口中,却找不到在登陆窗口产生的session了。
立即学习“PHP免费学习笔记(深入)”;
一:在asp.net中的解决办法:
1:假若登录窗口为default.aspx,我们在后台可以这样写:
这样我们就可以把SessionID传递到新打开的窗口index.aspx中,我们在index.aspx中就可以根据这个SessionID
重新构造一个Session。
2:在index.aspx中我们可以这样来重新构造session:
其中我们用到了SessionState命名空间下的SessionIDManager类,我们通过重写它的CreateSessionID
这个虚方法来重新或得Session。CreateSessionID这个虚方法需要我们重写,它返回的就是一个新的Session
的SessionID,而这个SessionID就是从登陆界面default.aspx中传递过来的,所以我们可以认为新构造的
Session和登陆窗口的Session是一个Session。
立即学习“PHP免费学习笔记(深入)”;
二:在php中的解决办法:
1:在php中解决这个sesssion丢失,用的也是同样的办法,并且还更简单,只需两个函数就搞定了,
session_id这个函数就是取得登陆界面的SessionID。
立即学习“PHP免费学习笔记(深入)”;
2:然后我们就可以想在.net中一样,根据这个SessionID构造一个Session:
session_id($sid);
session_start();
Session_id这个函数就是重新构造Session。
立即学习“PHP免费学习笔记(深入)”;
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号