Asp.net提交验证方案(上)
Asp.net提交验证方案(下)
\n
\n
此前我介绍了使用数据库实现的提交验证方案,一些朋友怀疑其效率不佳,认为Session是更好的方案。
\n
的确使用Session也不会消耗太多内存,而且如今内存白菜价,最不济就随手买个2G的插上也就够了,所以我将在此写下Session版的实现提要,其余细节参考前篇。
\n
实现方案简述:
\n
在Session中存储一个哈希表用以记录该用户的每一条验证信息,哈希表的键为验证信息的过期时间,值为验证码的明文。
\n
过期时间使用ViewState存储,以发给客户端,并在提交时获取,以读取对应的验证码明文。
\n
传给验证码生成页面的ID参数是经ToFileTime()方法转换的过期时间,验证码生成页获取到此参数后进行逆转换,再读取对应的验证码明文以生成显示。
\n
代码讲解:
\n
先建立一个静态类,名为“提交验证”,将用于存储验证信息的Session变量封装为一个属性:
\n
\n
/// <summary>
\n
/// 验证信息表
\n
/// </summary>
\n
static Hashtable 验证信息
\n
{
\n
get
\n
{
\n
return Core.函数库.网络.Session["验证信息"] as Hashtable;
\n
}
\n
set
\n
{
\n
Core.函数库.网络.Session["验证信息"] = value;
\n
}
\n
}
\n