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

using System;using System.Web;using System.Web.SessionState; //第一步:导入此命名空间public class 类名 : IHttpHandler ,IRequiresSessionState //第二步:实现接口 到此就可以像平时一样用Session了{}
在自定义类库CS文件里使用System.Web.HttpContext.Current.Session获取Session时提示错误:未将对象引用设置到对象的实例。一般情况下通过这种方式获取Session值不会有问题,不过应特别注意要使用session必须要page_load方法执行以建立了page对象以后才有session的使用目标,此时先检测Session是否为Null再调用值是不会提示错误的。如果直接在Page页面中定义一个全局变量取Session的值就会提示未设置实例的错误!使用Application,Cookie同理也需注意这个问题。在ASHX一般处理程序文件中如需调用Session必须继承System.Web.SessionState.IRequiresSessionState接口,才能实现Session读写!System.Web.SessionState的接口介绍:IReadOnlySessionState指定目标 HTTP处理程序只需要具有对会话状态值的读访问权限。这是一个标记接口,没有任何方法。IRequiresSessionState指定目标 HTTP处理程序需要对会话状态值具有读写访问权。这是一个标记接口,没有任何方法。自定义 HTTP 处理程序,从IHttpHandler继承,在写System.Web.HttpContext.Current.Session["Name"]的时候没有问题,但想将这个Session写到某个变量时,发现Session的值为NULL;MSDN中的解决方法为:“在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权”,在自定义的类上加上该接口后,Session值获取正常。例子:ashx文件要使用Session,必须实现Session接口;
时间: 2024-12-29 04:31:09

一般处理程序设置Session cs 文件获取session的相关文章

php自定文件保存session的实用方法

session.inc.php文件:定义session的文件存储,session解决方案,就是要提供在php脚本中定义全局变量的方法,使得这个全局变量在同一个session中对于所有的php脚本都有效,我们都知道,session不是一个简单的时间概念,一个session中还包括了特定的用户和服务器,因此更详细地讲,在一个session定义的全局变量的作用范围,是指这个session所对应的用户所访问的所有php,例如a用户通过session定义了一个全局变量$user="wind"中,

Session缓存的获取,添加,和删除操作

public class Session_Manager { /// <summary> /// 获取Session对象值 /// </summary> /// <param name="Key"></param> /// <returns></returns> public static object Get(string Key) { return HttpContext.Current.Session[Key

转:客户端session与服务端session

会话(Session)跟踪是Web程序中常用的技术,用来 跟踪用户的整个会话 .常用的会话跟踪技术是Cookie与Session. Cookie通过在客户端记录信息确定用户身份 , Session通过在服务器端记录信息确定用户身份 . 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. 1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上, 一个用户的所有请求操作都应该属于同一个会话 ,而另一个用户的所有请求操作

如何解决设置Session保存在StateServer后引起WebService/WebMethod无法异步获取Session

项目中有一个文件上传功能,需要显示文件上传进度.于是使用PageMethods 调用WebService/WebMethod . 在demo中测试一切正常.但是转移到项目中之后无法异步刷新文件上传进度. 调试后发现原因是异步刷新时,获取的session信息不是文件上传页面更新的最新信息. 又发现 web.config 中 有如下设置 <sessionState mode="StateServer" stateConnectionString="tcpip=localho

ASP.NET MVC 项目中 一般处理程序ashx 获取Session

1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash

一般处理程序获取Session方式

今天写程序得时候遇到了一个问题:ajax在对ashx进行请求时如果按照 context.Request方式直接来获取值得话获取到得是空值,因此去网上搜了一下问题.现记录如下: ashx获取session值: 1.首先添加引用:using System.Web.SessionState; 2.我们得一般处理程序类要继承IRequiresSessionState接口 3.对session值判断是否为null 4.使用context.session["***"] 得到对应得session值

JS 设置/获取session

设置: 1 .       $.session.set('token', result.accessToken)      这个要引用库jquerySession.js 2.        sessionStorage.setItem("token", result.accessToken); 3.        localStorage.setItem("token", result.accessToken); 获取: 1.           ourtoken

PHP中Redis替代文件存储Session语句

php默认使用文件存储session,如果并发量大,效率非常低.而Redis对高并发的支持非常好,所以,可以使用redis替代文件存储session. 这里,介绍下php的 session_set_save_handler 函数的作用和使用方法.该函数定义用户级session保存函数(如打开.关闭.写入等).原型如下: bool session_set_save_hanler(callback open,callback close,callback read,callback write,ca

WebAPI中无法获取Session对象的解决办法

在MVC的WebApi中默认是没有开启Session会话支持的.需要在Global中重写Init方法来指定会话需要支持的类型 public override void Init() { PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest; base.Init(); } void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e) { H