黑马程序员技术交流社区

标题: 在一般处理程序ashx怎样操作session [打印本页]

作者: 黑马-杨鹏立    时间: 2013-3-9 19:12
标题: 在一般处理程序ashx怎样操作session
今天在做网页后台登录时操作ashx处理session值时,一直没拿到还报错“未将对象引用设置到对象的实例”的异常,因此查了下资料

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

HttpRequest Request = context.Request;

HttpResponse Response = context.Response;

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

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

所以,如果要想取Session中的值 ,需要如下所示

1、引入 命名空间:

using System.Web.SessionState;


2、实现IRequiresSessionState接口,具体如下  

public class AddUserInfo : IHttpHandler,IRequiresSessionState //就是这样显示的实现一下,不用实现什么方法
{
public void ProcessRequest(HttpContext context)
{
       //这样就可以 操作了
if (context.Session["uInfo"] != null)      

      {            
   context.Session.Abandon();                context.Response.Redirect("login.aspx");      
     }
    }
  }

public bool IsReusable {
        get {
            return false;
        }
    }












欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2