[导入]妙用cache检验用户是否重复登陆_asp.net技巧

妙用cache检验用户是否重复登陆_asp.net技巧

网上看到可用Cache来判断用户是否已登陆的方法,感觉还不错。实验后,特此分享代码原理比较简单:判断cache中是否已存在规定的客户登陆字符串,如果没有便添加,同时指定其在 cache中的保存时间。重复登陆时,便能通过判断cache值是否为空来判断用户是否重复登陆了

//生成Key  
string sKey = TextBox1.Text + "_IsLogin";
//得到Cache中的给定Key的值  
string sUser = Convert.ToString(Cache[sKey]);
//检查是否存在  
if (sUser == null || sUser == String.Empty)
{
    //Cache中没有该Key的项目,表明用户没有登录,或者已经登录超时     
    //TimeSpan 表示一个时间间隔,获取系统对session超时作的设置值
    //TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
    //(如果考虑到允许用户再次登陆的时间小于session超时时间,可将此值设小,在此示例中设置为一分钟)
    TimeSpan SessTimeOut = new TimeSpan(0, 0, 1, 0, 0);
    HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut,
 System.Web.Caching.CacheItemPriority.NotRemovable, null);
    //首次登录,您可以做您想做的工作了。  
    Label1.Text = "你好!欢迎光临";
}
else
{
    //在Cache中发现该用户的记录,表名已经登录过,禁止再次登录  
    Label1.Text = "对不起,你已在别处登陆.或者在1分钟后重试";
    return;
}

 

 

TimeSpan 对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。用于度量持续时间的最大时间单位是天。更大的时间单位(如月和年)的天数不同,因此为保持一致性,时间间隔以天为单位来度量。

TimeSpan 对象的值是等于所表示时间间隔的刻度数。一个刻度等于 100 纳秒,TimeSpan 对象的值的范围在 MinValueMaxValue 之间。

TimeSpan 值可以表示为 [-]d.hh:mm:ss.ff,其中减号是可选的,它指示负时间间隔,d 分量表示天,hh 表示小时(24 小时制),mm 表示分钟,ss 表示秒,而 ff 为秒的小数部分。即,时间间隔包括整的正负天数、天数和剩余的不足一天的时长,或者只包含不足一天的时长。例如,初始化为 1.0e+13 刻度的 TimeSpan 对象的文本表示“11.13:46:40”,即 11 天,13 小时,46 分钟和 40 秒。

TimeSpan 类型实现了 System.IComparableSystem.IComparable 接口。


文章来源:http://zhangkai0309.blog.163.com/blog/static/2888485820082254423113
posted @ 2008-03-25 16:04  ChouKei  阅读(427)  评论(0编辑  收藏  举报