Cookie:
是一小段文本信息,用戶請求頁面的時候,在瀏覽器和服務器之間傳遞。用戶每次訪問的時候都會記錄cookie,cookie里可以包含用戶信息,瀏覽的歷史記錄等等;Cookie是由服務器端生成,但是它是屬于客戶端的,發送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內,下次請求同一網站時就發送該Cookie給服務器(前提是瀏覽器設置為啟用cookie)。
基本語法:
編寫cookie存:---創建cookie對象,分配自定義cookie名稱HttpCookie mycookie =new HttpCookie(“ UserSettings”);用戶自定義名稱;mycookie.values.add(“name1”,”value1”); 為cookie添加鍵值對Mycookie.values.add(“name2 ”,”value2”);換種寫法 mycookie【“name1”】=“value1”;也是一樣mycookie.Expires= DateTime.Now.AddDays(1d);過期時間設置為一天Response.Cookies.Add(mycookie); 添加到cookie集合中去注意的地方:不指定該 Cookie 的過期限制,則該 Cookie 將不會保留在客戶端計算機上,當用戶會話到期時該 Cookie 即到期。Cookie 僅能存儲 String 類型的值。在將任何非字符串值存儲到 Cookie 中之前,必須將它們轉換為字符串取:if(Request.Cookies[“ UserSettings”]!=null){string getVal=””;if(Resquest.Cookies[“ UserSettings”][“name1”]!=null){getVal=Resquest.Cookies[“ UserSettings”][“name1”];}}//刪除cookie//只要把cookie設置成過期時間;if (Request.Cookies["UserSettings"] != null){ HttpCookie myCookie = new HttpCookie("UserSettings"); myCookie.Expires = DateTime.Now.AddDays(-1d); Response.Cookies.Add(myCookie);}
cookie封裝成一個方法:
1 創建cookie對象并且賦value,修改cookie的value值可以用這個方法;因為必須重新設過期時間 2 strCookieName: cookie 的對象名 3 iExpires: cookie 的有效時間 0 代表一周, -1 代表永久 ,大于2小于60 代表天數 其他代表 分鐘數 4 strValue: cookie對象的值 5 public static void SetCookie(string strCookieName, int iExpires ,string strValue) { 6 HttpCookie objCookie=new HttpCookie(strCookieName); 7 objCookie.Value=System.Web.HttpUtility.UrlEncode(strCookieName); 8 If(iExpires>=0){ 9 switch(iExpires>=0){10 case 0: 11 objCookie.Expires=DateTime.Now.AddDays(7);break;12 case -1:13 objCookie.Expires=DateTime.MaxValue; break;14 }15 default:16 if( iExpires>=60)17 objCookie.Expires=DateTime.Now.AddSeconds(iExpires);18 else19 objCookie.Expires=DateTime.Now.AddDays(iExpires);20 21 }22 HttpContext.Current.Response.Cookie.Add(objCookie);23 } 24 25 讀取cookie26 傳入相同的名字就可以了。27 讀取cookie某個對象的value 如果不存在就返回字符串”“28 public static string Getcookie(string strCookieName){29 switch(HttpContext.Current.Request.Cookies[strCookieName] == null){30 case true:31 strCookieName= String.Empty; break;32 case false: 33 strCookieName=System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies[strCookieName].Value);break;34 }35 return strCookieName;36 }
最常用的就是session 了
選擇封裝
//存session的值// 設置session的值public static void SetSession(string name, object value){ try{ HttpContext.Current.Session[name]=value; }catch(Exception ex ){ WriteErrorLog(ex,”HelperError”) }} //錯誤日志public static void WriteErrorLog(Exception ex,string ErroType){if(ex==null)return;System.Text.StringBuilder sbui=new StringBuilder();string datetime =DateTime.Now.ToString("yyyyMMddHHmmss_ffff"); sbui.Append("錯誤等級:/r/n"); sbui.Append(ErrorType); sbui.Append("/r/n錯誤的信息:/r/n"); sbui.Append(ex.Message); sbui.Append("/r/n錯誤的堆棧:/r/n"); sbui.Append(ex.StackTrace); sbui.Append("/r/n出錯的方法名:/r/n"); sbui.Append(ex.TargetSite.Name); sbui.Append("/r/n出錯的類名:/r/n"); sbui.Append(ex.TargetSite.DeclaringType.FullName); WriteErrorLog(sbui.ToString());} //獲取session的值 這個事可以取實體public static object GetSession(string name){ object obj_Value=null; try{ obj_Value=HttpContext.Current.Session[name]; }catch(Exception ex){ obj_Value=null; WriteErrorLog(ex,”HelperError”);} return obj_Value;}//這個取字符串 public static string GetStringSession(string name) { string Str_Value = ""; try { if (HttpContext.Current.Session[name] != null) Str_Value = HttpContext.Current.Session[name].ToString(); } catch (Exception ex) { Str_Value = String.Empty; WriteErrorLog(ex, "HelperError"); } return Str_Value; }
新聞熱點
疑難解答