一般我們通過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的 報文 與報文中所有值得的數據,也就是客戶端所傳進的數據進行處理。
新聞熱點
疑難解答