ashx文件中使用Session

如果要在.ashx(一般处理程序) 中使用Session如果不改一些信息的话直接使用context.Session[“uid”]这样会出现“未将对象引用设置到对象实例”就是说值为null。此时的解决办法就是:

1、在命名空间里导入:using System.Web.SessionState;

2、让它继承接口IRequiresSessionState:

public class Handler1 : IHttpHandler,IrequiresSessionState

{

    public void ProcessRequest(HttpContext context)

    {

这样就可以直接使用context.Session[“uid”]了;

    }

}

注意:

1、如果是要在HttpHandler 中读取Session的内容(就是当我在一个继承了IrequiresSessionState页面上赋给了一个值给context.Session[“uid”] = “KimhillZhang”,那么我就得在要获取这个Session值的页面上就必须让它继承于IreadOnlySessionState才可以通过string name = context.Session[“uid”].ToString(),不然值为null),就要在实现IHttpHandler 的类中同时实现IReadOnlySessionState 这个接口。
2、如果是要在HttpHandler 中读写Session的内容,就要在实现IHttpHandler 的类中同时实现IRequiresSessionState

posted @ 2010-06-14 10:45  心在天  阅读(445)  评论(0编辑  收藏  举报