应用程序中,页面跳转时,为啥SessionID发生了改变?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用程序中,页面跳转时,为啥SessionID发生了改变?相关的知识,希望对你有一定的参考价值。

在asp.net中,做一个添加购物车的程序,在添加页面用sessionID添加后,Respose.Redirect("cart.aspx");后,却取不出刚刚添加的内容,一查原因,竟然是sessionID变了,请问这是为什么,怎么解决?
谢谢各位兄弟的热心帮助,小弟已经解决了。
现将解决办法公布如下:
其实很简单,只是我在引用sessionID前,整个应用程序没有一处保存并使用过Session,所以,在应用程序中的不同页面里,SessionID会时常发生变化的。只要在一打开应用程序的时候,你就随便保存一下Session(但并不一定使用)即可,这样在任何页面引用SessionID都不会发生变化了。谢谢各位!!!

参考技术A 问题很简单,你的页面的Session设置了只读。
如下:
<%@ PageEnableSessionState="ReadOnly" %>
-------------------------
而后,在Web.Config中你再看看,有没有Session设置为只读的语句。
如果你的Session设置了只读,意味着,Session不能给定新值。

有点乱,我打个比方,如果Session 设置了Readonly的话
1.aspx --->这里设置了Session["abc"]="abc";
这里设置是成功的,在程序中也能自由读取修改。

但从1.aspx转向2.aspx时,由于2.aspx不允许1.aspx修改其SessionID
所以在2.aspx中Session["abc"]=null;

总结:Session设置为只读后,对内可写,对外只读。
参考技术B 可能是因为你在不同的页面用了同样的session名称,可以在不同的页面用不同的session名称 参考技术C Asp.net 默认配置下,Session莫名丢失的原因及解决办法
http://hi.baidu.com/331830966/blog/item/09c9e1c31a795e51b219a829.html

参考资料:http://hi.baidu.com/331830966/blog/item/09c9e1c31a795e51b219a829.html

参考技术D Respose.Redirect("cart.aspx?num=你需要的值");

uni.navigateTo页面跳转时传对象参数

A页面要传的对象参数:

注:encodeURIComponent(JSON.stringify(对象))

//跳转详情
handleAlarmDetailById(e)
    //e是一个对象类型参数
    uni.navigateTo( url: "/indexHugerol/pages/alopmdetail/index?alarmDetail=" + encodeURIComponent(JSON.stringify(e)) )
,

B页面接收参数:

注:JSON.parse(decodeURIComponent(前面传的参数))

onLoad(options) 
    this.alarmDetail = JSON.parse(decodeURIComponent(options.alarmDetail));
,

然后,就可以直接使用这个参数了

以上是关于应用程序中,页面跳转时,为啥SessionID发生了改变?的主要内容,如果未能解决你的问题,请参考以下文章

为啥刷新一下页面SessionID会变

如何使PHP程序执行页面跳转时传递大量参数

为啥明明创建了servlet,跳转时却出现404找不到呢

Vuex页面跳转时数据传递

asp.net在页面跳转时端口号丢失

H5页面在IOS微信中跳转时,会出现底部工具栏,遮挡页面底部内容