1. 程式人生 > >ASP.Net一般處理程式Session用法,以及cookie的用法

ASP.Net一般處理程式Session用法,以及cookie的用法

1.在aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()進行讀寫。而在ashx中,Session都要使用context.Session,讀寫方法不變。

2.在ashx檔案中,若要對Session進行成功的讀寫,應該在使用Session的class後增加介面IRequiresSessionState(注意:需要引入:using System.Web.SessionState;),否則context.Session["xxx"]讀出的總是null

那麼,在aspx、aspx.cs和ashx中可以使用Session後,我們在AppCode的cs檔案中,如何操作Session或者得到訪問者的IP?

首先,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。

HttpContext類中有一個靜態屬性叫Current,我們可以通過這個屬性去得到當前的HttpContext。當然,在cs中要操作Session,也應該增加IRequiresSessionState介面。

與Session、Request、Response、Server等相關的方法和屬性,都可以根據這個模式、方法去套用。

比如,在AppCode的cs檔案中要得到當前訪問者的IP,可以用HttpContext.Current.Request.UserHostAddress。

//同理,如果使用cookie的話首先也要增加介面:IHttpHandler

設定cookie : HttpContext.Current.Response.Cookies["VifCode"].Value = str;(str 為設定的值)

獲取cookie:string vifcode = HttpContext.Current.Request.Cookies["vifcode"].Value;