ashx文件中获取Session值

在一般页面,可用 Request,Response获取对象,如下:

HttpRequest Request = context.Request; 

HttpResponse Response = context.Response;

但是要获取Session值,需得注意下。在ashx得到保存在Session中的登录名Session["userName"]

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

如要获取Session中的值 :引入命名空间SessionState,继承IRequiresSessionState 

如下:

1、引入命名空间:

using System.Web.SessionState;

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

    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class AddUserInfo : IHttpHandler,IRequiresSessionState 

    {

        public void ProcessRequest(HttpContext context)
        {

                if(context.Session["userName"] != null)

      {

        string name= context.Session["userName"].ToString();

      }

      //do something

    }

  }

你可能感兴趣的:(.net,session,asp.net,Ashx)