一般处理程序设置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接口;

转载于:https://www.cnblogs.com/2515593227blog/p/6553962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值