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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET 一般处理程序中获取到的session值为空相关的知识,希望对你有一定的参考价值。

在网上查了资料 也继承了IRequiresSessionState 接口,但是获取的值还是为空,后台一切正常,求高手指点

参考技术A .net的一般处理程序 .ashx的context对象默认是取不出session的值出来的。
要达到取出Session的效果,则需要让它实现System.Web.SessionState.IReadOnlySessionState接口(该接口没有任何方法实现,只是起到一个标识作用)

为了让所有的一般处理程序都能获取到Session值,并且能集中做一些控制管理(比如用户认证、权限控制等),我的策略是让一个抽象类实现IHttpHandler, IRequiresSessionState接口,然后让其他所有一般处理程序都继承该抽象类即可。
参考技术B   是不是用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

本回答被提问者和网友采纳
参考技术C 你可以用google浏览器调试一下,看客户端是否有session,一般情况下,你继承了IRequiresSessionState接口,再获取cookie是没有问题的。

一般处理 程序中获取Session中的值?

技术分享图片

如果没有引入using System.Web.SessionState;空间

和IRequiresSessionState(或者IReadOnlySessionState)接口,

那么会出现session对象未将实例化的错误。

技术分享图片

以上是关于.NET 一般处理程序中获取到的session值为空的主要内容,如果未能解决你的问题,请参考以下文章

怎样获得asp.net中的session

一般处理 程序中获取Session中的值?

一般处理程序获取Session方式

一般处理程序设置Session cs 文件获取session

一般处理程序Session

easyui中动态datagrid列名,根据不同的条件查询数据库显示不同的列。一般处理程序中用session来弄columns