ASP.NET 之异步处理一(Session处理)

8/10/2015来源:ASP.NET技巧人气:1284

asp.net 之异步处理一(session处理)

一般我们通过Ajax来处理用户信息的时候,遇到了Session值是找不到的这是为什么?

我们所谓的页面就是一个处理程序,其实现非常复杂,要通过asp.net的管道处理,一般处理程序也要通过管道事件来过滤最终生成HTML提交浏览器,但是一般处理程序.ashx页只是继承了IHttpHandler接口,无法传递Session,那么要截取HttpContextcontext的Session对象值怎么办?

public class CustomerPhoto : IHttpHandler

解决方案:

首先ashx页不像aspx页直接继承了page实现了接口我们可以直接拿到Session,而ashx页只是继承了IHttpHandler接要截取HttpContextcontext的Session对象必须实现IRequiresSessionState,导入程序集合usingSystem.Web.SessionState;同时使用context.Session对象。这样才获取了Session值。

public class CustomerPhoto : IHttpHandler, System.Web.SessionState.IRequiresSessionState

public void PRocessRequest(HttpContext context)在传进的context中截取session的值

public void SavePic() { HttpContext ctx = HttpContext.Current;

}

ctx就是(HttpContext的 报文 与报文中所有值得的数据,也就是客户端所传进的数据进行处理。