在一般处理文件中访问Session需要添加IRequiresSessionState(转载)
通常我们经常,通过session判定用户是否登录。还有一些临时的、重要的数据也尝尝存放在Session中。
在页面我们很容易的得到Session的值,但在类中就会遇到一些问题。也知道通过下面的方法得到。
System.Web.HttpContext.Current.Session["userinfo"];
但是今天此种方法也失灵了。在做一个小应用时,需要实现IHttpHandler,同时也需要用到用户的标识。但是在这个类中怎么也不能找到Session的值,曝出
System.Web.HttpContext.Current.Session为null
为什么得到的Session会是空呢?想了好久也没想通。找了好久,才找到了高人的指点,问题得到了解决。
解决方法:
在实现IHttpHandler的同时,也要实现IRequiresSessionState接口,其命名空间为:System.Web.SessionState。
publicclass WatermarkHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState{}
继续追踪:
为什么要实现这个接口呢?这个接口是做什么用的呢?继续追踪,MSDN给了最终解释。
IRequiresSessionState
指定目标 HTTP 处理程序需要对会话状态值具有读写访问权。这是一个标记接口,没有任何方法。
作用:
在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权
在一般处理文件中访问Session需要添加IRequiresSessionState(转载)的更多相关文章
- 在一般处理文件中访问Session需要添加IRequiresSessionState
		
在IHttpHandler 使用Session 通常我们经常,通过session判定用户是否登录.还有一些临时的.重要的数据也尝尝存放在Session中. 在页面我们很容易的得到Session的值,但 ...
 - 如何在WebSocket类中访问Session
		
我最近正在做一个基于websocket的webQQ,最后代码会开源带github上,所以过程中我就不贴所有的代码啦~就贴问题的关键. 我在WebSocket里发消息的时候需要用到session,因为在 ...
 - 如何在web.config文件中配置Session变量的生命周期
		
实例说明:在网上购物商城中,为了维护在线购物环境,一般只有注册会员才可以购买商品.实现购物功能时,先通过Session变量记录会员的登录名,然后在购买商品页面通过判断会员是否登录确定其能否购买商品. ...
 - 在ashx和静态文件中使用Session
		
在ashx页面中如果想使用可读可写的Session,必须要实现一个接口“IRequiresSessionState”,在这个接口中没有定义任何方法,这样的接口被称为“标识接口”. public int ...
 - 在Handler.ashx文件中使用session
		
使用jquery调用handler文件中的方法,需要使用session,默认生成的文件中,不可以直接使用session.按照以下步骤,即可以通过session与其他的aspx页面的session进行数 ...
 - ashx文件中使用session提示“未将对象引用设置到对象的实例”
		
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;u ...
 - c# 在 websocket 中访问 session
		
今天的项目需要用到websocket,但是中websocket中无法直接访问session,一访问session就出错,断开连接. 找了老半天百度也没有相关c#的介绍和方法,没办法,找不到现成的代码, ...
 - C语言如何在两个文件中访问同一个全局变量
		
方法一: 不使用头文件. 1.c 中 int var; 2.c 中 extern int var; 方法二: 使用头文件. 1.c 中 int var; 不必添加#include "1.h& ...
 - 注册表的作用、bat文件中REG ADD命令添加注册表项以及bat
		
注册表的用途与设置 注册表是windows的核心,里面储存着大量的系统信息,说白了就是一个庞大的数据库.如果你不懂什么是数据库,那没关系,不影响你了解注册表,不过最好对数据库有所了解.注册表里面所有的 ...
 
随机推荐
- 【C++ STL编程】queue小例子
			
STL是标准化组件,现在已经是C++的一部分,因此不用额外安装什么. #include <queue> #include <iostream> using namespace ...
 - 嵌入式linux应用开发完全手册学习笔记一
			
2015.3.25星期三 晴 有两个星期没写学习日记了,找个时间把这段时间做的电子词典和ARM小项目总结一下. 下面的知识点总结,U-BOOT:参考PDF文档:嵌入式linux应用开发完全手册 当虚拟 ...
 - CSS transform-style属性实现3D效果
			
相对于transform-style:flat,在2d平面呈现,transform-style:preserve-3d则将所有子元素呈现在3d空间中. 实例: HTML: <div class= ...
 - 第二个Sprint冲刺项目github
			
https://github.com/22shaojiawen/the-second-sprint-project
 - Python UDP broadcast PermissionError: [Errno 13] Permission denied
			
/********************************************************************** * Python UDP broadcast Permi ...
 - Array.prototype.indexOf
			
arr.indexOf(searchElement[, fromIndex = 0]) Array.prototype.indexOf()
 - FreeBSD打开DTrace支持
			
主要翻译自:https://wiki.freebsd.org/DTrace FreeBSD跟Linux发行版一个比较大的差异,就是提倡源码构建.因此这里提到比较多的编译开关设置.自2012年5月后,D ...
 - 解决IE6下JS动态插入iframe不显示的方法
			
function myshowBox(titles, urls, objWidth, objHeight, flags) { var _title = titles; var _url ...
 - unity, 播放循环背景音乐注意事项
			
循环背景音乐用wav格式,不要用mp3. 参考:http://answers.unity3d.com/questions/343057/how-do-i-make-unity-seamlessly-l ...
 - WCF实现客户端自动更新-GenerateFileList
			
GenerateFileList using System; using System.Collections.Generic; using System.Diagnostics; using Sys ...