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

原文地址:https://www.cnblogs.com/KimhillZhang/p/1749202.html