如何在ashx页面获取Session值

来源:互联网 发布:哪里能买到特效软件 编辑:程序博客网 时间:2024/05/22 19:59

在一般事务处理页面,可以轻松的得到 Request,Response对象,从而进行相应的操作,如下:

HttpRequest Request = context.Request; 

HttpResponse Response = context.Response;

但是要得到 Session的值就没有那么简单了。比如你要在ashx得到保存在Session中的登录帐号Session["userAccount"]

如果你只是context.Session["userAccount"]的话是会报 “未将对象引用设置到对象的实例”的异常

 

 

最近做一个项目,有使用Ajax调用ashx文件 ,其中ashx文件里面有用到Session,但是总无法获取Session,经过调试,出现的错误的原因:

大体如下

Session["loginName"]为空,无法toString();

context.Session["Id"]
“context.Session”引发了“System.NullReferenceException”类型的异常
    base {System.SystemException}: {"该方法的指针为空。"}

查阅MSDN得到ashx文件要使用Session,必须实现Session接口;

<%@ WebHandler Language="C#" Class="checkCookie" %>

using System;
using System.Web;
using System.Web.SessionState;     //第一步:导入此命名空间

public class checkCookie : IHttpHandler ,IRequiresSessionState   //第二步:实现接口   到此就可以像平时一样用Session了
...{
   
    public void ProcessRequest (HttpContext context)
    ...{

原创粉丝点击