你的位置:首页 > ASP.net教程

[ASP.net教程]ASP.NET 之异步处理一(Session处理)


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

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

 public class CustomerPhoto : IHttpHandler

解决方案:

首先ashx页不像aspx页直接继承了page 实现了接口我们可以直接拿到Session,而ashx页只是继承了IHttpHandler接要截取HttpContext context 的Session对象必须实现IRequiresSessionState,导入程序集合using System.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的 报文 与报文中所有值得的数据,也就是客户端所传进的数据进行处理。