.NET 一般处理程序中获取到的session值为空

在网上查了资料也继承了IRequiresSessionState接口,但是获取的值还是为空,后台一切正常,求高手指点... 在网上查了资料 也继承了IRequiresSessionState 接口,但是获取的值还是为空,后台一切正常,求高手指点 展开
 我来答
dchangrui111
2013-05-23
知道答主
回答量:6
采纳率:0%
帮助的人:5.6万
展开全部
.net的一般处理程序 .ashx的context对象默认是取不出session的值出来的。
要达到取出Session的效果,则需要让它实现System.Web.SessionState.IReadOnlySessionState接口(该接口没有任何方法实现,只是起到一个标识作用)

为了让所有的一般处理程序都能获取到Session值,并且能集中做一些控制管理(比如用户认证、权限控制等),我的策略是让一个抽象类实现IHttpHandler, IRequiresSessionState接口,然后让其他所有一般处理程序都继承该抽象类即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
翾翳嬿
2013-05-23 · TA获得超过423个赞
知道小有建树答主
回答量:190
采纳率:66%
帮助的人:259万
展开全部
  是不是用flash上传文件的后台处理类?flash和后台交互的时候会重新分配ASP.NET_SessionId.导致页面会话和flash会话ID不同。所以会被认为是两个不同的浏览器请求,自然session不同,即无法取到值。
追问
嗯 是flash文件上传类,请问有没有其他解决方法呢?
追答
  有两种方式:
  1 、不做flash上传的时候的访问限制。
  2 、在服务端Session判空并创建之前,将传递过来的SessonID强制赋给当前请求的Cookies,这样服务端就认为还是原来的Session传递过来了。
  你可以参考一下这个链接:
  http://www.cnblogs.com/fumj/archive/2012/11/30/2795990.html
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1e52b2c
2013-05-23 · 超过16用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:42.8万
展开全部
你可以用google浏览器调试一下,看客户端是否有session,一般情况下,你继承了IRequiresSessionState接口,再获取cookie是没有问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式