|
此前我介紹了使用數(shù)據(jù)庫實現(xiàn)的提交驗證方案,一些朋友懷疑其效率不佳,認為Session是更好的方案。
的確使用Session也不會消耗太多內(nèi)存,而且如今內(nèi)存白菜價,最不濟就隨手買個2G的插上也就夠了,所以我將在此寫下Session版的實現(xiàn)提要,其余細節(jié)參考前篇。
實現(xiàn)方案簡述:
在Session中存儲一個哈希表用以記錄該用戶的每一條驗證信息,哈希表的鍵為驗證信息的過期時間,值為驗證碼的明文。
過期時間使用ViewState存儲,以發(fā)給客戶端,并在提交時獲取,以讀取對應的驗證碼明文。
傳給驗證碼生成頁面的ID參數(shù)是經(jīng)ToFileTime()方法轉換的過期時間,驗證碼生成頁獲取到此參數(shù)后進行逆轉換,再讀取對應的驗證碼明文以生成顯示。
代碼講解:
先建立一個靜態(tài)類,名為“提交驗證”,將用于存儲驗證信息的Session變量封裝為一個屬性:
///
/// 驗證信息表
///
static Hashtable 驗證信息
{
get
{
return Core.函數(shù)庫.網(wǎng)絡.Session["驗證信息"] as Hashtable;
}
set
{
Core.函數(shù)庫.網(wǎng)絡.Session["驗證信息"] = value;
}
}
NET技術:較為周全的Asp.net提交驗證方案(Session版),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。