今天在做网页后台登录时操作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; } }
|