session默认失效时间失效怎么办

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&查看: 4488|回复: 14
session失效后页面跳转问题
该用户从未签到
当session失效时跳转到登录页,但是却在tab部分的在跳转,想要的效果是整个页面跳。
想要的效果是如下图:就如刚进入系统的登录页一样
求助!!!!!!
前后代码:
&extageManager ID=&quotageManager1& runat=&server& AutoSizePanelID=&RegionPanel1& /&
& & &ext:RegionPanel ID=&RegionPanel1& runat=&server& ShowBorder=&false&&
& && &&&&Regions&
& && && && &&ext:Region ID=&Region1& Margins=&0 0 0 0& Height=&62px& ShowBorder=&false& ShowHeader=&false&
& && && && && & Position=&Top& Layout=&Fit& runat=&server&&
& && && && && & &Toolbars&
& && && && && && &&&&ext:Toolbar ID=&Toolbar1& Position=&Bottom& runat=&server&&
& && && && && && && && &&Items&
& && && && && && && && && & &ext:ToolbarFill ID=&ToolbarFill1& runat=&server&&
& && && && && && && && && & &/ext:ToolbarFill&
& && && && && && && && && & &ext:ToolbarText ID=&ToolbarText4& Text=&欢迎您 & runat=&server&&
& && && && && && && && && & &/ext:ToolbarText&
& && && && && && && && && & &ext:ToolbarText ID=&tbtUserName& Text=& & runat=&server&&
& && && && && && && && && & &/ext:ToolbarText&
& && && && && && && && && & &ext:Button ID=&btnSourceCode& Text=&修改密码& EnablePostBack=&true&
& && && && && && && && && && &&&runat=&server& Type=&Button&&
& && && && && && && && && & &/ext:Button&
& && && && && && && && && & &ext:ToolbarSeparator ID=&ToolbarSeparator1& runat=&server&&
& && && && && && && && && & &/ext:ToolbarSeparator&
& && && && && && && && && & &ext:Button ID=&btnExit& ConfirmText=&确认退出系统吗?& Text=&安全退出& EnablePostBack=&true&
& && && && && && && && && && &&&runat=&server& Type=&Submit&&
& && && && && && && && && & &/ext:Button&
& && && && && && && && &&/Items&
& && && && && && &&&&/ext:Toolbar&
& && && && && & &/Toolbars&
& && && && && & &Items&
& && && && && && &&&&ext:ContentPanel ShowBorder=&false& ShowHeader=&false& BodyStyle=&background-color:#1C3E7E;&
& && && && && && && && &ID=&ContentPanel3& runat=&server&&
& && && && && && && && && & &div style=&height:5&&&/div&
& && && && && && && && &&div style=&float: color:W&&
& && && && && && && && && & &aspabel ID=&Label3& runat=&server& Text=&系统& Font-Bold=&true& Font-Size=&18px& &&/aspabel&
& && && && && && && && &&/div&
& && && && && && &&&&/ext:ContentPanel&
& && && && && & &/Items&
& && && && &&/ext:Region&
& && && && &&ext:Region ID=&reLeft& Split=&true& EnableSplitTip=&true& CollapseMode=&Mini& Width=&200px&
& && && && && & Margins=&0 0 0 0& ShowHeader=&true& Title=&菜单栏& EnableLargeHeader=&false& Icon=&Outline&
& && && && && & EnableCollapse=&true& Layout=&Fit& Position=&Left& runat=&server&&
& && && && && & &Items&
& && && && && & &/Items&
& && && && &&/ext:Region&
& && && && &&ext:Region ID=&mainRegion& runat=&server& Position=&Center& Layout=&fit& Margins=&0 0 0 0&
& && && && && & ShowHeader=&false& Title=&&&
& && && && && & &Items&
& && && && && && &&&&ext:TabStrip ID=&mainTabStrip& EnableTabCloseMenu=&true& ShowBorder=&false& runat=&server&&
& && && && && && && && &&Tabs&
& && && && && && && && && & &ext:Tab ID=&Tab1& Title=&首页& Layout=&Fit& Icon=&House& runat=&server&&
& && && && && && && && && && &&&&Items&
& && && && && && && && && && && && &&ext:ContentPanel ID=&ContentPanel1& ShowBorder=&false& BodyPadding=&10px& ShowHeader=&false& AutoScroll=&true&
& && && && && && && && && && && && && & CssClass=&intro& runat=&server&&
& && && && && && && && && && && && && & &img src=&images/bg006.jpg& alt=&& /&
& && && && && && && && && && && && && & &img src=&images/bg001.jpg& alt=&& style=&float:right& /&
& && && && && && && && && && && && &&/ext:ContentPanel&
& && && && && && && && && && &&&&/Items&
& && && && && && && && && & &/ext:Tab&
& && && && && && && && &&/Tabs&
& && && && && && &&&&/ext:TabStrip&
& && && && && & &/Items&
& && && && &&/ext:Region&
& && &&&&/Regions&
& & &/ext:RegionPanel&
本帖子中包含更多资源
才可以下载或查看,没有帐号?
该用户从未签到
这个应该是后台事件,你贴前台代码干嘛呢?用js的话,直接window.top.locaiton.href='Login.apsx'就可以了呀!
该用户从未签到
☆幻~精灵 发表于
这个应该是后台事件,你贴前台代码干嘛呢?用js的话,直接window.top.locaiton.href='Login.apsx'就可以了 ...
每个页面的后台都是这样写的:
protected void Page_Load(object sender, EventArgs e)
& && &&&UserInfo user = (UserInfo)Session[&USER&];//获得登陆用户信息
& && &&&if (!IsPostBack)
& && && && &if (user != null)
& && && && &{
& && && && && &
& && && && &}
& && && && &else
& && && && &{
& && && && && & Response.Redirect(&~/Login.aspx&);
& && && && && & //FormsAuthentication.RedirectToLoginPage();//返回主页
& && && && &}
该用户从未签到
PageContext.RegisterStartupScript(&window.top.locaiton.href='Login.apsx'&);
该用户从未签到
yan 发表于
每个页面的后台都是这样写的:
protected void Page_Load(object sender, EventArgs e)
这样的操作完全可以放在继承自System.Web.UI.Page的父类中去重写Init方法实现。然后每个WebForm继承自该类,就自动进行了Session验证。
看了你的这个方法,这个方法,貌似不一定能完全跳出框架页。需要在这里,根据,每次页面的相对url进行判断。然后利用ClientScript注册前台js事件去执行。方法如下:window.top.location.href=''
该用户从未签到
分享下,我的Session失效判断(对于弹出窗体无效)。
string url = Request.RawU
& && &&&int count = url.Split('/').L
& && &&&string toUrl = &&;
& && &&&for (int i = 0; i & count - 3; i++)
& && && && &toUrl += &../&;
& && &&&toUrl += &Login.aspx&;
& && &&&ExtAspNet.Alert.ShowInParent(&登陆信息失效!请重新登陆!&, &友情提示&, rmation, &top.location.href='& + toUrl + &'&);
签到天数: 1 天[LV.1]初来乍到
我的是写到类里了
public class UserHelper
& && &&&public static UserInfo OnlineUser
& && && && &get
& && && && &{
& && && && && & try
& && && && && & {
& && && && && && &&&if (HttpContext.Current.Session[&UserID&] != null)
& && && && && && &&&{
& && && && && && && && &int UserID = Convert.ToInt32(HttpContext.Current.Session[&UserID&]);
& && && && && && && && &return UserInfo.Load(UserID);
& && && && && && &&&}
& && && && && && &&&else
& && && && && && &&&{
& && && && && && && && &System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.H
& && && && && && && &&&
& && && && && && && && &page.Response.Redirect(&~/login.aspx&);
& && && && && && && && &return (UserInfo)
& && && && && && && &&&
& && && && && && &&&}
& && && && && & }
& && && && && & catch {
& && && && && && &&&System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.H
& && && && && && &&&page.Response.Redirect(&~/login.aspx&);
& && && && && && &&&return (UserInfo)
& && && && && & }
& && && && && &
& && && && &}
该用户从未签到
啃O 发表于
我的是写到类里了
public class UserHelper
你这样的写法,多用户的时候,会不会被覆盖呢?static实例,可只有一个呢!第二个登陆用户,难道不会将第一个的登陆用户的登陆信息修改掉吗?
签到天数: 1 天[LV.1]初来乍到
本帖最后由 啃O 于
15:38 编辑
Session是服务器与本机的会话 应该不会,具体多用户还真没详细测试过 精灵的方法得每个页面都得用代码判断
签到天数: 1 天[LV.1]初来乍到
其实也可以不设置成静态的 在使用时从新new一个就行了
站长推荐 /2
客户端 JS 库仅 200K;下载流量减少 70%;内存占用减少 50%;速度提升 3 倍以上(无缓存)
现在就打开微信,扫描二维码关注 FineUI 公众号,三石期待您的加入!
扫描二维码,关注 FineUI 微信公众号
Powered by<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&7170人阅读
& 今天下班坐班车,快到站的时候,上家公司的leader发了个qq给我,意思是救火,下车后回来在电脑上详细问了下,leader的描述如下
你帮我看下 为啥上传完试卷发布任务
设置答题卡的时候
session就没了
& 因为这个项目一开始后台都是我一人开发的,因此很快就找到了问题所在。流程为:用户通过js组件上传试卷,在上传试卷的方法中通过session存储刚刚上传的试卷详细信息,如名称、后缀、存入资源表的ID等,上传成功后,再点击页面上的其他选项,如学校、年级、难易度等,最后点击提交,在提交处理的方法里,一开始便判断刚刚上传的session&#20540;是否存在,不存在便跳到试卷首页。我在此方法中打印了$_SESSION,没有&#20540;,奇怪了,以前还是好好的。于是我问了下,啥时候开始的,leader说下午快下班时,老师打电话说上传试卷设置答题卡不成功,老跳转。接着又问了下,动服务器环境了么,leader说没有。
& 既然出现了问题,那就解决问题呗。正好这段时间在看《PHP核心技术与最佳实践》一书,里面就对session和cookie有详细的描述,同时也加深了我对二者的理解。于是我先打开php的配置文件,找到session相关的配置项,发现session.save_path为/data2/session,我记得以前都是设置为/data1/session的,怎么变了。于是我退出来去看看此路径,一开始我以为是该目录权限不够,后来一看,压根就没有该目录,难怪每个session不会跨页面。于是新建文件,设置权限,再上传,一切又恢复正常了。
& 写到这,我也想再唠叨下session相关的技术点。session是存储在服务器端的,默认是以文件方式存储的(session.save_handler = files)。那session是如何产生的呢?session是通过session_start()函数产生的 ,当此函数运行时,在session存储的目录里生成一个文件和唯一一个与之对应的session id,通过session
id可以取出该session文件的数据。由于每次运行session_start()都会产生新的seession文件,那么如何利用到以前生成session文件呢,只需session_start($session_id),那么便不会新产生session文件了,而会去读session id对应的session文件。session id在默认情况下都是使用在客户端(浏览器)的cookie来保存session id(在chrome浏览器上按F12键,点击Resources-cookies,可以看到),使用$_COOKIE['PHPSESSID']可以获取。那个PHPSESSID是session
id的默认名称,在php.ini里可以通过session.name来设置,在脚本中用session_name()来获取session id的名称。每次浏览器和服务器对话时,浏览器都会把session id传给服务器的,服务器会依据传递过来的session id找到相应的session文件获取相应信息进行相关操作。而一旦客户端(浏览器)禁用了cookie,那么服务器端变不会接收到session id,此时需要显示传递session id了。两种方法:手动通过URL传递session id;隐藏表单传递session
id。上述两种方法需要服务端的php环境中session.use_trans_sid &#20540;为 1。
& & & & 啰嗦了那么多,最后还是linus那句话,“talk is cheap,show me the code”。
session_start();
$_SESSION[&#39;arr&#39;] = array(&#39;name&#39; =& &#39;molaifeng&#39;, &#39;hobby&#39; =& &#39;php&#39;);
&a href=&testSession.php?&?php echo session_name(); ?&=&?php echo session_id()?&&&testSession&/a&
session_start($_REQUEST[session_name()]);
print_r($_SESSION);
& & & & 代码都看懂的吧,就不解释了。
& & & & 最后总结下吧,一般情况下出现跨页面session失效,基本上是上述列出的几点。1、session.save_path有误,如权限不够,或是目录不存在;2、服务器php配置中的session.use_trans_sid&#20540;为0;3、客户端禁用了cookie。不过我觉得第一种情况出现的频率应该挺高的。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:251043次
积分:3297
积分:3297
排名:第7589名
原创:127篇
评论:84条}

我要回帖

更多关于 设置session失效时间 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信