J'ai vu sur Internet que Cache pouvait être utilisé pour déterminer si l'utilisateur était connecté, ce qui semble plutôt bien. Après l’expérimentation, le
principe du code partagé ici est relativement simple :
Déterminez si la chaîne de connexion client spécifiée existe déjà dans le cache. Sinon, ajoutez-la et spécifiez sa durée de stockage dans le cache. Lorsque vous vous connectez à plusieurs reprises, vous pouvez déterminer si l'utilisateur s'est connecté à plusieurs reprises en jugeant si la valeur du cache est vide.
//Générer la clé
chaîne sKey = TextBox1.Text + "_IsLogin" ;
//Obtenir la valeur de la clé donnée dans le cache
string sUser = Convert.ToString(Cache[sKey]);
//Vérifie s'il existe
if (sUser == null || sUser == String.Empty)
{
//Il n'y a aucun élément pour cette clé dans le cache, ce qui indique que l'utilisateur n'est pas connecté ou que la connexion a expiré.
//TimeSpan représente un intervalle de temps et obtient la valeur de paramètre du système pour le délai d'expiration de la session.
//TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
//(Si l'on considère que le temps imparti à l'utilisateur pour se reconnecter est inférieur au délai d'expiration de la session, cette valeur peut être définie plus petite, dans cet exemple, elle est définie sur une minute)
TimeSpan SessTimeOut = nouveau TimeSpan (0, 0, 1, 0, 0);
HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut,
System.Web.Caching.CacheItemPriority.NotRemovable, null);
//Après vous être connecté pour la première fois, vous pouvez effectuer le travail que vous souhaitez effectuer.
Label1.Text = "Bonjour ! Bienvenue" ;
}
autre
{
//L'enregistrement de l'utilisateur est trouvé dans le Cache. Le nom de la table a déjà été connecté. Il est interdit de se reconnecter.
Label1.Text = "Désolé, vous êtes connecté ailleurs. Ou réessayez dans 1 minute";
retour;
}
http://www.cnblogs.com/heekui/archive/2006/12/14/591691.html