C# 防止同一個賬號多次登錄(cache方法)


c#中防止同一賬號重復登錄的方法有不少,比如用數據庫來記錄用戶登錄情況、用Application來保存用戶登錄信息、用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 = "這個用戶已經登錄!";
}
}

 

大家可以把上面代碼用在自己的程序中,檢測一下,有效防止同一賬號的重復登錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM