Vi en Internet que el caché se puede utilizar para determinar si el usuario ha iniciado sesión, lo cual parece bastante bueno. Después del experimento, el
principio del código compartido aquí es relativamente simple:
Determine si la cadena de inicio de sesión del cliente especificada ya existe en la caché. De lo contrario, agréguela y especifique su tiempo de almacenamiento en la caché. Al iniciar sesión repetidamente, puede determinar si el usuario ha iniciado sesión repetidamente juzgando si el valor de la caché está vacío.
//Generar clave
cadena sKey = TextBox1.Text + "_IsLogin";
//Obtener el valor de la clave dada en el caché
string sUser = Convert.ToString(Cache[sKey]
//Comprueba si existe
if (sUsuario == nulo || sUsuario == String.Empty)
{
//No hay ningún elemento para esta clave en la caché, lo que indica que el usuario no ha iniciado sesión o que el inicio de sesión ha agotado el tiempo de espera.
// TimeSpan representa un intervalo de tiempo y obtiene el valor de configuración del sistema para el tiempo de espera de la sesión.
//TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
//(Si se considera que el tiempo permitido para que el usuario inicie sesión nuevamente es menor que el tiempo de espera de la sesión, este valor se puede establecer en un valor menor, en este ejemplo se establece en un minuto)
TimeSpan SessTimeOut = nuevo TimeSpan(0, 0, 1, 0, 0);
HttpContext.Current.Cache.Insert(sKey, sKey, nulo, DateTime.MaxValue, SessTimeOut,
System.Web.Caching.CacheItemPriority.NotRemovable, nulo);
//Después de iniciar sesión por primera vez, puedes realizar el trabajo que deseas.
Label1.Text = "¡Hola! Bienvenido";
}
demás
{
// El registro del usuario se encuentra en la caché. El nombre de la tabla ya ha iniciado sesión. Está prohibido volver a iniciar sesión.
Label1.Text = "Lo sentimos, has iniciado sesión en otro lugar. O inténtalo de nuevo en 1 minuto";
devolver;
}
http://www.cnblogs.com/heekui/archive/2006/12/14/591691.html