رأيت على الإنترنت أنه يمكن استخدام ذاكرة التخزين المؤقت لتحديد ما إذا كان المستخدم قد قام بتسجيل الدخول، وهو ما يبدو جيدًا جدًا. بعد التجربة،
أصبح مبدأ الكود المشترك هنا بسيطًا نسبيًا:
حدد ما إذا كانت سلسلة تسجيل دخول العميل المحددة موجودة بالفعل في ذاكرة التخزين المؤقت. وإذا لم يكن الأمر كذلك، فأضفها وحدد وقت تخزينها في ذاكرة التخزين المؤقت. عند تسجيل الدخول بشكل متكرر، يمكنك تحديد ما إذا كان المستخدم قد قام بتسجيل الدخول بشكل متكرر من خلال الحكم على ما إذا كانت قيمة ذاكرة التخزين المؤقت فارغة.
// إنشاء مفتاح
string sKey = TextBox1.Text + "_IsLogin";
// احصل على قيمة المفتاح المحدد في ذاكرة التخزين المؤقت
string sUser = Convert.ToString(Cache[sKey]);
//تحقق من وجوده
إذا (sUser == null || sUser == String.Empty)
{
// لا يوجد عنصر لهذا المفتاح في ذاكرة التخزين المؤقت، مما يشير إلى أن المستخدم لم يقوم بتسجيل الدخول، أو أن مهلة تسجيل الدخول قد انتهت.
// يمثل TimeSpan فاصلًا زمنيًا ويحصل على قيمة إعداد النظام لمهلة الجلسة.
//TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
//(إذا اعتبر أن الوقت المسموح به للمستخدم لتسجيل الدخول مرة أخرى أقل من مهلة الجلسة، فيمكن تعيين هذه القيمة أصغر، في هذا المثال تم ضبطها على دقيقة واحدة)
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 = "مرحبًا! مرحبًا";
}
آخر
{
// تم العثور على سجل المستخدم في ذاكرة التخزين المؤقت. تم تسجيل الدخول بالفعل إلى اسم الجدول. يحظر تسجيل الدخول مرة أخرى.
Label1.Text = "عذرًا، لقد قمت بتسجيل الدخول في مكان آخر. أو حاول مرة أخرى خلال دقيقة واحدة";
يعود؛
}
http://www.cnblogs.com/heekui/archive/2006/12/14/591691.html