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