¿Cómo leer el valor en Cookie para no tener que volver a ingresar su nombre de usuario y contraseña la próxima vez que inicie sesión?
blogs.com/over140/archive/2008/11/19/1336497.html
Aplicación sencilla de cookies ASP.NET [Cookies ASP.NET]
Prólogo
Generalmente, cualquier sitio web o foro con mecanismos de membresía o usuario tendrá dicha casilla de verificación al iniciar sesión: [Recordar mi nombre | No volver a iniciar sesión dentro de dos semanas En esta computadora Guardar mi información | ], hay muchas opiniones y la implementación es similar. Este artículo es un ejemplo simple y viene con una clase auxiliar de cookies de C# CookiesHelper.cs y fragmentos de código de implementación. Espero que sea útil para los principiantes: )
<. p>Artículos recomendados1. El análisis del archivo index.dat de Lin Xinliang proporciona un análisis más profundo de cómo se almacenan las cookies en index.dat
2. MSDN: descripción general de ASP Cookies .NET Una introducción muy completa y detallada a las Cookies
Text
CookiesHelper.cs
usando System;
usando System.Collections .Genérico;
usando System.Text;
usando System.Web;
espacio de nombres TLibrary.ObjectHelper
{
public class CookiesHelper
{
#region Obtener cookie
/// lt; resumen
/// Obtener el valor de Cookie
/// lt;/summarygt;
/// lt;param name="cookieName"gt;lt;/paramgt;
/// lt; returngt; lt;/returnsgt;
cadena estática pública GetCookieValue(string cookieName)
{
return GetCookieValue(cookieName, null) ;
}
/// lt; resumengt;
/// Obtener el valor de la cookie
/// lt ; /summarygt; p>
/// lt;param nombre="cookieName"gt;lt;/paramgt;
/// lt;param nombre="clave"gt;lt ;/paramgt;
p>/// lt; returngt; /returnsgt
cadena estática pública GetCooki
eValue(cadena cookieName, cadena clave)
{
Solicitud HttpRequest = HttpContext.Current.Request;
if (solicitud! = nulo)
return GetCookieValue(request.Cookies[cookieName], clave);
return "";
}
/// resumengt; /p>
/// Obtener el valor de la subclave de Cookie
/// lt;/summarygt;
/// lt; param name="cookie" gt; lt;/paramgt;
/// lt;param name="key"gt;lt;/paramgt;
/// lt;returnsgt;lt;/returnsgt ;
cadena estática pública GetCookieValue(cookie HttpCookie, clave de cadena)
{
if (cookie!= null)
{
if (!string.IsNullOrEmpty(key) amp; amp; cookie.HasKeys)
return cookie.Values[key]
else
;return cookie.Value;
}
return ""
}
/// resumengt; /p >
/// Obtener cookie
/// lt;/summarygt;
/// lt;param name="cookieName"gt;lt;/paramgt ;
/// lt; returngt; /returnsgt;
HttpCookie estática pública GetCookie(cadena nombre de cookie)
{
Solicitud HttpRequest = HttpContext.Current.Request;
if (solicitud!= nulo)
devolución solicitud.Cookies[cook
ieName];
return null;
}
#endregion
#region Eliminar cookie
// /lt;summarygt;
/// Eliminar cookie
/// lt;/summarygt;
/// lt;param name="cookieName" gt;lt;/paramgt;
public static void RemoveCookie(string cookieName)
{
RemoveCookie(cookieName, null);
}
/// lt; resumengt;
/// Eliminar subclaves de cookies
/// lt /summarygt; > /// lt;param name="cookieName"gt;lt;/paramgt;
/// lt;param name="key"gt;lt;/paramgt;
public static void RemoveCookie(cadena cookieName, cadena clave)
{
HttpResponse respuesta = HttpContext.Current.Response;
if (respuesta! = nulo)
{
cookie HttpCookie = respuesta.Cookies[nombrecookie];
if (cookie != null)
{
if (!string.IsNullOrEmpty(key) amp; amp; cookie.HasKeys)
cookie.Values.Remove(key);
else
<; p> respuesta.Cookies.Remove(cookieName);}
}
}
#endregion
#region Establecer/modificar cookie
/// lt resumengt;
/// Establecer el valor de la subclave de cookie
p>
/// lt;/summarygt;
/// lt;param name="cookieName"gt;lt;/paramgt;
/// lt; param name="key"gt;lt;/paramgt;
/// lt;param name="value"gt;lt;/paramgt;
public static void SetCookie( cadena cookieName, cadena clave, valor de cadena)
{
SetCookie(cookieName, clave, valor, nulo);
}
/// lt; resumengt;
/// Establecer valor de cookie
/// lt /summarygt; "key"gt;lt;/paramgt;
/// lt;param name="value"gt;lt;/paramgt;
public static void SetCookie(clave de cadena, valor de cadena)
{
SetCookie(clave, nulo, valor, nulo
}
/// resumengt); ;
///Establecer el valor de la cookie y el tiempo de vencimiento
/// lt;/summarygt;
/// param name="key" gt;lt;/paramgt;
/// lt;param name="valor"gt;lt;/paramgt;
/// lt;param name="expires" gt;lt;/paramgt;
public static void SetCookie(clave de cadena, valor de cadena, fecha y hora caduca)
{
SetCookie(clave, nulo, valor , expira);
}
/// lt; resumengt;
/// Establecer el tiempo de vencimiento de las cookies
/// lt;/summarygt;
/// lt;param name="cookieName"gt;lt;/paramgt;
/// lt;param name="expires"gt; lt;/paramgt;
p
ublic static void SetCookie(cadena cookieName, DateTime expira)
{
SetCookie(cookieName, null, null, expires);
}
/// lt; resumengt;
/// Establecer cookie
/// lt /summarygt; ="cookieName"gt;lt;/paramgt;
/// lt;param name="key"gt;lt;/paramgt;
/// lt;param nombre ="value"gt;lt;/paramgt;
/// lt;param name="expires"gt;lt;/paramgt;
public static void SetCookie(string cookieName , clave de cadena, valor de cadena, Fecha y hora caduca)
{
HttpResponse respuesta = HttpContext.Current.Response;
if (respuesta! = nulo)
{
HttpCookie cookie = respuesta.Cookies[cookieName];
if (cookie != null)
{
if (!string.IsNullOrEmpty(key) amp; amp; cookie.HasKeys)
cookie.Values.Set(key, value
else
);if (!string.IsNullOrEmpty(value))
cookie.Value = valor;
if (expires != null)
cookie.Expires = caduca.Valor;
respuesta.SetCookie(cookie);
}
}
}
#endregion
#region Agregar cookie
/// lt; resumen
/// Agregar cookie
/// lt; ;/summarygt;
/// lt;param nombre="key"gt;lt;/paramgt;
/// lt;param nombre="valor"gt;lt ;/paramgt;
public static void AddCookie(clave de cadena, valor de cadena)
{
AddCookie(new HttpCookie(clave, valor)); p> p>
}
/// lt; resumengt;
/// Agregar cookie
/// lt /summarygt; /p >
/// lt;param nombre="key"gt;lt;/paramgt;
/// lt;param nombre="valor"gt;lt;/paramgt;
/// lt;param name="expires"gt;lt;/paramgt;
public static void AddCookie(clave de cadena, valor de cadena, DateTime expira)
{
cookie HttpCookie = nueva HttpCookie(clave, valor);
cookie.Expires = expira
AddCookie(cookie);
}
/// lt; resumengt;
/// Agregado como colección Cookie.Values
/// lt /summarygt; ;
/// lt;param name="cookieName"gt;lt;/paramgt;
/// lt;param name="key"gt;lt;/paramgt ;
/// lt;param name="value"gt;lt;/paramgt;
public static void AddCookie(cadena cookieName, cadena clave, cadena valor)
{
cookie HttpCookie = nueva HttpCookie(cookieName
cookie.Values.Add(ke);
y, valor);
AddCookie(cookie);
}
/// resumengt; Configurar para cookies
/// lt;/summarygt;
/// lt;param name="cookieName"gt;Cookie namelt;/paramgt;
/// lt;param name="expires"gt;Tiempo de vencimientolt;/paramgt;
public static void AddCookie(string cookieName, DateTime expira)
{
p>cookie HttpCookie = nueva HttpCookie(cookieName);
cookie.Expires = expira
AddCookie(cookie); >
/// lt; resumengt;
/// Agregado como colección Cookie.Values
/// lt /summarygt; > / // lt; nombre del parámetro="nombre_cookie"; /paramgt;
/// nombre del parámetro="clave"gt; > / // lt; nombre del parámetro = "gt; /paramgt;
/// nombre del parámetro = "gt; > public static void AddCookie(string cookieName, string key, string value, DateTime expira)
{
cookie HttpCookie = nueva HttpCookie(cookieName);
cookie .Expires = caduca;
cookie.Values.Add(clave, valor);
AddCookie(cookie);
}
// /lt; resumengt;
/// Agregar cookie
/// lt;/summarygt;
/// param name=" cookie" gt;lt;/paramgt;
public static void AddCookie(H
ttpCookie)
{
HttpResponse respuesta = HttpContext.Current.Response;
if (respuesta!= nulo)
{
//Especifique si el script del cliente puede acceder [el valor predeterminado es falso]
cookie.HttpOnly = true
//Especifique una ruta unificada, será más fácil pasar depósitos y retiros
cookie.Path = "/";
//Establezca el dominio cruzado para que se pueda acceder a él con otros nombres de dominio de segundo nivel
//cookie.Domain = "chinesecoo.com";
respuesta.AppendCookie(cookie);
}
}
#endregion
}
}
Notas sobre el código:
1. Al agregar cookies, tenga en cuenta que una cookie puede agregue varias subclaves
2. Si no configura HttpCookie.Expires explícitamente, entonces la vida útil de esta cookie es el proceso del navegador; caducará cuando se cierre el navegador
3. Debe comprender HttpCookie.Domain y Las dos propiedades de HttpCookie.Path son útiles para aplicaciones avanzadas, como rutas de almacenamiento y entre dominios
Mire el código de llamada real a continuación
Página cargando
protegido vacío Page_Load (objeto remitente, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie Cookie = CookiesHelper.GetCookie(" UserInfo");
if (Cookie != null)
{
this.txtUserName.Value = Cookie.Values["uName"];
p>
}
}
}
Descripción del código: p>
1. this.txtUserName es el nombre de usuario ingresado en el control de la interfaz, simplemente cámbielo a su propio nombre de control;
2. UserInfo es el nombre de la cookie, uNam
e es la subclave de Cookie.
La función de este código es mostrar el nombre de usuario registrado en la cookie del usuario cuando se carga la página. También se puede registrar junto con la contraseña y luego mostrarlo aquí, para que el usuario pueda hacer clic directamente. el botón de inicio de sesión
Verificación de inicio de sesión
string uName = this.txtUserName.Value.Trim();
//Verificar nombre de usuario y contraseña
if (IsLogin(uName, this.txtPass.Value.Trim()))
{
//Recuerda mi nombre
if (! cadena IsNullOrEmpty(Request["remUsername"]))
{
HttpCookie Cookie = CookiesHelper.GetCookie("UserInfo");
if (Cookie = = null )
{
Cookie = new HttpCookie("UserInfo");
Cookie.Values.Add("uName", uName); p>
//Establecer tiempo de vencimiento de las cookies
Cookie.Expires = DateTime.Now.AddDays(365);
CookiesHelper.AddCookie(Cookie);
}
else if (!Cookie.Values["uName"].Equals(uName))
CookiesHelper.SetCookie("UserInfo", "uName", uName);
p>
}
Response.Redirect("~/index.aspx");
}
Descripción del código :
1. this.txtUserName y this.txtPass son controles para ingresar el nombre de usuario y la contraseña en la interfaz. Simplemente cámbielos a sus propios nombres de control
2. El método IsLogin es; se utiliza para verificar si el nombre de usuario y la contraseña son correctos. Simplemente reemplácelos con su propio método de verificación aquí.
3. La solicitud ["remUsername"] es para obtener si la casilla de verificación [Recordar mi nombre] está seleccionada en la interfaz.
La función de este código es después de que el usuario inicia sesión correctamente , si se selecciona Recordar el nombre de usuario de inicio de sesión, el nombre de usuario se almacenará en la cookie del cliente y el tiempo de vencimiento se establecerá en 1 año.
Fin
Dudé cuando publiqué este artículo. Para ser honesto, revisé MSDN y básicamente lo entendí, pero aún así es diferente del mío. diviértete aprendiendo y lee más MSDN :)
Etiqueta de etiqueta: Cookies ASP.NET, ASP.NET implementa recordar nombres de usuario y guardar mi información en esta computadora