ashx頁面中context.Session["xxx"]獲取不到值的解決辦法
- 在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()進行讀寫。而在ashx中,Session都要使用context.Session,讀寫方法是這樣的:context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString()
- 在ashx文件中,要對Session進行成功的讀寫,應該在使用 Session的class後增長接口IRequiresSessionState (添加時可能提示添加命名空間 using System.Web.SessionState 的引用),不然 context .Session ["xxx"]讀出的老是null
- aspx.cs中是直接Request和 Session,而在ashx中是context.Request和 context.Session。aspx.cs中能夠直接使用,是由於有Web.UI,ashx中只能靠傳進去的HttpContext實例對 Request和Session等進行操做。AppCode中的cs文件中沒有Web.UI,沒有HttpContext參數,若是 cs中能夠獲得當前的HttpContext,就能夠根據這個HttpContext去操做Request和Session。
- 在cs中要操做Session,應該增長IRequiresSessionState 接口。HttpContext類中有一個靜態屬性叫Current,能夠經過這個屬性去獲得當前的HttpContext。
- 在AppCode的cs文件中要獲得當前訪問者的IP,能夠用HttpContext.Current.Request.UserHostAddress。
歡迎關注本站公眾號,獲取更多信息