session 对象为空

w87875251l 2011-09-09 04:26:31
if (System.Web.HttpContext.Current.Session != null && System.Web.HttpContext.Current.Session["FX_ServerUrl"] != null)
{
wfp.Server.WFPWS_DataSource.setServerUrl(System.Web.HttpContext.Current.Session["FX_ServerUrl"].ToString(), 0);

}
在一个类里写了个这个,调试时直接跳过 这步,session对象为空 ,但以前将一些值保存在session里了,
为啥会为空
...全文
455 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
krenyelang 2011-09-11
  • 打赏
  • 举报
回复
都是高见……
kidong 2011-09-10
  • 打赏
  • 举报
回复
其实你可以用COOKIES
YnSky 2011-09-10
  • 打赏
  • 举报
回复
!String.IsNullOrEmpty(System.Web.HttpContext.Current.Session["FX_ServerUrl"].ToString()) 这样就可以判断session 是否为空了
萧炎 2011-09-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zyloveyrf 的回复:]
if (System.Web.HttpContext.Current.Session.Tostring() != "" && System.Web.HttpContext.Current.Session["FX_ServerUrl"].Tostring() != "")
{
这种方式要好一些
[/Quote]
LZ这个方式适合当session有值的时候哦,刚忘了说, 不然会报错
萧炎 2011-09-10
  • 打赏
  • 举报
回复
if (System.Web.HttpContext.Current.Session.Tostring() != "" && System.Web.HttpContext.Current.Session["FX_ServerUrl"].Tostring() != "")
{
这种方式要好一些
萧炎 2011-09-10
  • 打赏
  • 举报
回复
LZ 你确定将值保存进去了?
你看看你的数据源头是不是为空啊,一般来说不存在session超时

基本上就是要么在其他地方将session的值赋为空值了

要么就是数据源头 也就是保存到session里面的值是空的
MSDNXGH 2011-09-10
  • 打赏
  • 举报
回复
一般而言,如果是内部网,使用人不多的话,可以使用session,因为session会占内存,也极不稳定如何掉失。所以,一般对于登陆,或者要在登陆期间内长期保留客户资料的话,都不推崔使用。

cookies和seeion的区别,一个在客户端一个在服务端。所以一般放在COOKIES的内容都会加密。比如像.net的from模式都是使用cookies的,但内容都是经过的SHA加密,基本无效破解(目前是吧),当然网上也没有绝对的安全。

seeion的实现机制也依赖cookies,seesion的ID由cookies记录,每次依据cookies提供的seeion的ID,找到seeion.当然,这不是唯一方法(默认方式),也可以显式指定seeion的ID储存方式。

那COOKIES有没有人使用昵?事实上绝大用户不会禁止COOKES,但不存在某些用户会禁止,楼主可以试一下把COOKIES禁止了,很多大型网站也登陆不了,因为人家也是用cookes
诸葛非卿 2011-09-10
  • 打赏
  • 举报
回复
如上面几位仁兄的回复,我认为很有可能时间已经到了。因为你的代码其实没有什么错误。至于前面那几位的做其实和上面的楼主的问题不达边。我是这么认为的。。
!String.IsNullOrEmpty(System.Web.HttpContext.Current.Session["FX_ServerUrl"].ToString())

System.Web.HttpContext.Current.Session != null
这两者在楼主所公布的代码来看其实没有什么区别。
至于引用12楼,主要还是觉得这哥们说的很地道。我就不画蛇添足了。
[Quote=引用 12 楼 msdnxgh 的回复:]

一般而言,如果是内部网,使用人不多的话,可以使用session,因为session会占内存,也极不稳定如何掉失。所以,一般对于登陆,或者要在登陆期间内长期保留客户资料的话,都不推崔使用。

cookies和seeion的区别,一个在客户端一个在服务端。所以一般放在COOKIES的内容都会加密。比如像.net的from模式都是使用cookies的,但内容都是经过的SHA加密,基本无效破解(目前……
[/Quote]
dark7yue 2011-09-10
  • 打赏
  • 举报
回复
dark7yue 2011-09-10
  • 打赏
  • 举报
回复
Jade 2011-09-10
  • 打赏
  • 举报
回复
基本上还是赋值的问题,尤其是类型转换的时候,建议楼主再仔细检查下赋值的程序部分。
quifar123 2011-09-09
  • 打赏
  • 举报
回复
如果放到互联网上就会丢失了,那么有那么多的验证码都是放在session保存的,那么如果丢失了,这样验证码就会永远不对了,那还能登陆么???
狄默默斯基 2011-09-09
  • 打赏
  • 举报
回复
我是从实际出发,一般的虚拟主机都不会开StateService,据说只有这样才能保持住,在进程中就不行了。

如果你在本机当然没问题了,,放到互联网上就会丢失了。。

asp.net的Session就是一BUG,应该建议微软向PHP学习一下怎么存session的。。
杨友山 2011-09-09
  • 打赏
  • 举报
回复
session是整个会话都有效的,为空那可能是 会话设定的时间到了
ycproc 2011-09-09
  • 打赏
  • 举报
回复
先设置session过期时间长一点

然后在页面的加载试着捕获一下

看看有没有 获取session
风2013 2011-09-09
  • 打赏
  • 举报
回复
三楼 不知道你是怎么想的, session 没cookie安全?? cookie是在客户端的 谁都可以改掉 而且 有的浏览器是可以禁用cooike 的



!String.IsNullOrEmpty(System.Web.HttpContext.Current.Session["FX_ServerUrl"].ToString()) 这样就可以判断session 是否为空了

System.Web.HttpContext.Current.Session != null 这个根本就不需要
_天空之城 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xjl756425616 的回复:]
asp.net 用 Session,就等于在网站上放个定时炸弹,

结论,千万别用Session,极其不稳定,易丢失。

这时,cookie就非常好了。。
[/Quote]
首先你要明白 cookie和session的区别,不是说 用cookie了 丢掉session如果可以这样 微软肯定会把它丢弃!
楼主的你是在实现了 IhttpModel接口的类中写的是吗?那么需要继承 IRequiresSessionState接口
quifar123 2011-09-09
  • 打赏
  • 举报
回复
3楼!你不知道浏览器是可以设置禁止cookie的么?
li5206610 2011-09-09
  • 打赏
  • 举报
回复

试试看下面的代码

if (System.Web.HttpContext.Current.Session.SessionID != null && System.Web.HttpContext.Current.Session["FX_ServerUrl"] != null)
狄默默斯基 2011-09-09
  • 打赏
  • 举报
回复
asp.net 用 Session,就等于在网站上放个定时炸弹,

结论,千万别用Session,极其不稳定,易丢失。

这时,cookie就非常好了。。
加载更多回复(2)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧