HttpHandler获得Session值失败问题解决方法
2010-01-29 16:00
537 查看
HttpHandler获得Session值失败问题解决方法
通常我们经常,通过session判定用户是否登录。还有一些临时的、重要的数据也尝尝存放在Session中。在页面我们很容易的得到Session的值,但在类中就会遇到一些问题。也知道通过下面的方法得到。
System.Web.HttpContext.Current.Session["userinfo"];
但是今天此种方法也失灵了。在做一个小应用时,需要实现IHttpHandler,同时也需要用到用户的标识。但是在这个类中怎么也不能找到Session的值,曝出
System.Web.HttpContext.Current.Session为null
为什么得到的Session会是空呢?想了好久也没想通。找了好久,才找到了高人的指点,问题得到了解决。
解决方法:
在实现IHttpHandler的同时,也要实现IRequiresSessionState接口,其命名空间为:System.Web.SessionState。
public class WatermarkHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState{
}
继续追踪:
为什么要实现这个接口呢?这个接口是做什么用的呢?继续追踪,MSDN给了最终解释。
IRequiresSessionState
指定目标 HTTP 处理程序需要对会话状态值具有读写访问权。这是一个标记接口,没有任何方法。
作用:
在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权
所以记得哦,如果在自定义HTTP处理程序中,要访问Session,记得一定要实现这个接口哦。
http://www.cnblogs.com/jhxk/articles/1658837.html
相关文章推荐
- HttpHandler获得Session值失败问题解决方法
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法【已验证】
- 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
- Nginx出现The plain HTTP request was sent to HTTPS port问题解决方法
- haproxy 解决集群session共享问题方法
- 关于IIS服务启动失败的问题:“IIS提示‘另一个程序正在使用此文件,进程无法访问’”,的解决方法
- linux:无法获得锁的问题解决方法
- adb pull和adb push失败问题解决方法
- vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离
- 使用 StateServer 保存 Session 解决 Session过期,登陆过期问题,最简单的方法。
- SQL 2005 Report Server 请求因 HTTP 状态 400 失败: Bad Request 处理方法 的解决方法
- Nand Flash Yaffs系统大量写入数据失败问题的解决方法。
- SVN提交数据(Commit)失败问题(MKACTIVITY ... 403 Forbidden)解决方法
- 解决ISO9强制https造成已有的app中原有的http失败的问题。