ASP.NET讀取Cookies
// 將搜尋條件寫入Cookies
private void WriteConCookie(JobOfferQuery offerQuery)
{
HttpCookie cookie = new HttpCookie("JobOfferQueryCondition");
cookie.Expires = DateTime.Now.AddHours(1);
cookie.Values["name"] = User.Identity.Name;
cookie.Values["condition"] = SerializeJobOfferQuery(offerQuery);
Response.Cookies.Add(cookie);
}
// 將搜尋條件從Cookies中讀出來
private JobOfferQuery ReadConCookie()
{
try
{
HttpCookie cookie = Request.Cookies["JobOfferQueryCondition"];
if (cookie.Values["name"] == User.Identity.Name)
{
return DeserializeJobOfferQuery(cookie.Values["condition"]);
}
}
catch (Exception ex)
{}
return null;
}
序列化與還原序列化對象
// 序列化對象
private string SerializeJobOfferQuery(JobOfferQuery offerQuery)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(JobOfferQuery));
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, offerQuery);
string json = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return json;
}
// 還原序列化對象
private JobOfferQuery DeserializeJobOfferQuery(string str)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(JobOfferQuery));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(str));
try
{
JobOfferQuery offerQuery = serializer.ReadObject(ms) as JobOfferQuery;
return offerQuery;
}
catch (Exception ex)
{
return null;
}
finally
{
ms.Close();
}
}