如果要在.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