C# 防止同一个账号多次登录(cache方法)
2015-11-18 16:45
441 查看
c#中防止同一账号重复登录的方法有不少,比如用数据库来记录用户登录情况、用Application来保存用户登录信息、用Cache来保存信息等。
本文为大家介绍如何利用缓存Cache方便地实现此功能。
Cache与Session这二个状态对像的其中有一个不同之处,Cache是一个全局对象,作用的范围是整个应用程序,所有用户;
而Session是一个用户会话对象,是局部对象,用于保存单个用户的信息。
只要把每次用户登录后的用户信息存储在Cache中,把Cache的Key名设为用户的登录名,Cache的过期时间设置为Session的超时时间,在用户每次登录的时候去判断一下Cache[用户名]是否有值,如果没有值,证明该用户没有登录,否则该用户已登录。
为大家举一个例子吧。
大家可以把上面代码用在自己的程序中,检测一下,有效防止同一账号的重复登录。
本文为大家介绍如何利用缓存Cache方便地实现此功能。
Cache与Session这二个状态对像的其中有一个不同之处,Cache是一个全局对象,作用的范围是整个应用程序,所有用户;
而Session是一个用户会话对象,是局部对象,用于保存单个用户的信息。
只要把每次用户登录后的用户信息存储在Cache中,把Cache的Key名设为用户的登录名,Cache的过期时间设置为Session的超时时间,在用户每次登录的时候去判断一下Cache[用户名]是否有值,如果没有值,证明该用户没有登录,否则该用户已登录。
为大家举一个例子吧。
/// <summary> /// 防止多次登录 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button1_Click(object sender, System.EventArgs e) { string strUser = string.Empty; string strCacheKey = this.TextBox1.Text; strUser = Convert.ToString(Cache[strCacheKey]); if (strUser == string.Empty) { TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0); Cache.Insert(strCacheKey, strCacheKey, null, DateTime.MaxValue, SessTimeOut, CacheItemPriority.NotRemovable, null); Session["User"] = strCacheKey; this.Label1.Text = Session["User"].ToString(); } else { this.Label1.Text = "这个用户已经登录!"; } }
大家可以把上面代码用在自己的程序中,检测一下,有效防止同一账号的重复登录。
相关文章推荐
- c# 批量操作
- C# Process.Start()方法详解
- C# 文件操作
- C# 导出DataTable数据到Excel文件中
- 动态调用WebService(C#)
- C#调用本地Outlook发送邮件实例
- C# 预执行 事务回滚
- C#中的Dictionary简介
- C#中一种替换switch语句更优雅的写法
- C# 保留小数点后两位(方法总结)
- C#最基础窗体剖析
- C# 第二天
- C#中的volatile用法
- C#取得当前目录 转载
- 使用C#代码获取存储过程返回值
- C#怎样通过url调用接口
- C# 断点续传原理与实现
- (C#基础) ref 和out练习
- C#实现DataList里面嵌套DataList的折叠菜单
- C#获取年龄段 几零后