|
此前我介绍了使用数据库实现的提交验证方案,一些朋友怀疑其效率不佳,认为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版),转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。