.net的FormsAuthenticationTicket session、cookies驗證用戶信息用法的區別

FormsAuthenticationTicket session、cookies爲3種經常使用的驗證用戶登錄的方法,下邊說一下他們的區別:
 
1)FormsAuthenticationTicket 是。net framework2.0及其以上版本中固有的驗證機制,其本質是把用戶的cookies信息加密存儲在客戶端,這樣能夠部分下降服務器端的內存消耗,沒必要像session那樣把用戶信息存儲在服務端內存當中,而其數據的安全性則有微軟來保證,詳細用法請參考msdn官方文檔: http://msdn.microsoft.com/zh-cn/library/system.web.security.formsauthenticationticket_members(v=vs.80).aspx
 
2)session 使用session存儲用戶信息使用發放簡便,可在含有http上下文的任意位置添加session對象,而且能夠把對象賦予session,由於session爲object類型,可被任意對象賦值,session本質上實際上是在服務器端內存中開闢一段存儲區用於存放session的值,而在客服端(瀏覽器)留下一個cookies標記,該標記爲服務器端的session的一個id,不是session對象的具體內容,這樣相對於數據安全來講相對安全,但也只是相對,這樣作會對服務器端內存有所消耗,但影響應該不是很大,除非你的網站同時在線人數不少。不過session機制仍是有一些缺陷,iis 中因爲有進程回收機制,系統繁忙的話Session會丟失, IIS重啓也會形成Session丟失。這樣用戶就要從新登陸或者從新添加購物車、驗證碼等放到Session中的信息。因此微軟才推薦使用FormsAuthenticationTicket票據方式來驗證用戶登錄。
 
3)cookies 以上2種方式都間接的使用了cookies,使用cookies來驗證用戶身份時,記得最好加密一下,除非你設定cookies的過時的時間,否則仍是很容易被***所利用,形成沒必要要的用戶信息泄露。但cookies存儲數據的大小有限制,平均下來不超過4K,有的瀏覽器支撐比較高,但那也只是有的不是全部瀏覽器都是,我們只能取最小值。
 
 
以上只是本人的拙見,不對之處但願你們給予指教,共同進步
相關文章
相關標籤/搜索