Pregunta

Quiero añadir 3 número de serie al sistema cliente usando HttpCookie cuando visitó mi página web mi página web de su curso en asp.net MVC

y

número de serie es diferente diferente no es la misma.

Cuando agrego un cuarto de galletas y luego la tecla 1 se borra automáticamente.

cómo puedo hacer esto.

cuando el usuario quiere ver a continuación, puede ver la reciente tecla 3.

¿Es usted sabe cómo añadir esta cookie para sistema cliente por asp.net mvc sitio web.

¿Cómo puedo añadir key1, la tecla 2, key3 al sistema cliente.

¿Fue útil?

Solución

Así es como se puede hacer eso.

Escribir las teclas de serie.

//create a cookie
HttpCookie SerialKeys = new HttpCookie("SerialKeys");

//Add serial-key-values in the cookie
SerialKeys.Values.Add("key1", "your-first-serialkey");
SerialKeys.Values.Add("key2", "your-second-serialkey");
SerialKeys.Values.Add("key3", "your-third-serialkey");
SerialKeys.Values.Add("key4", "your-fourth-serialkey");

//set cookie expiry date-time. Made it to last for next 12 hours.
SerialKeys.Expires = DateTime.Now.AddHours(12);

//Most important, write the cookie to client.
Response.Cookies.Add(SerialKeys);

Lectura de la cookie de número de serie.

//Assuming user comes back after several hours. several < 12.
//Read the cookie from Request.
HttpCookie SerialKeys = Request.Cookies["SerialKeys"];
if (SerialKeys == null)
{
    //No cookie found or cookie expired.
    //Handle the situation here, Redirect the user or simply return;
}

//ok - cookie is found.
//Gracefully check if the cookie has the key-value as expected.
if (!string.IsNullOrEmpty(SerialKeys.Values["key1"]))
{
    string serialKey = SerialKeys.Values["key1"].ToString();
    //Yes key1 is found. Mission accomplished.
}

if (!string.IsNullOrEmpty(SerialKeys.Values["key2"]))
{
    string serialKey = SerialKeys.Values["key2"].ToString();
    //Yes key2 is found. Mission accomplished.
}

Otros consejos

Se puede añadir cookies para el usuario cuando un usuario inicia una sesión. Esto se puede hacer por el manejo de la sesión de comenzar incluso en el archivo Global.asax de la aplicación de la adición en el código de la lógica para la creación de estas claves.

void Session_OnStart() {
    HttpCookie key1 = new HttpCookie("key1","123");   
    Request.Cookies.Add(key1);
}

A continuación, para la cuarta cosa galletas su hablaban puede crear su lógica de código haciendo referencia a las cookies de los usuarios mediante el uso de Response.Cookies["cookie"] o eliminar uno usando Request.Cookies.Remove("cookie");

Todo límite navegador de un modo u otro la cantidad de galletas de un determinado sitio web puede almacenar. Si, por ejemplo, su navegador acepta las cookies n, el Al enviar el n + 1, el navegador va a borrar su más antiguo. Me parece que esto es lo que está pasando.

Una posible solución es usar una galleta con varios subvalores en lugar de una sola. De esa manera usted puede tener una galleta en tantos valores como desee (siempre sometido al límite de tamaño de galletas máximo que es 4086 bytes).

El código para hacer que sería algo así como:

//This code creates the cookie, ads some subvalues to it and then adds it to the request so its sent to the browser
HttpCookie cookie = new HttpCookie();
cookie.Name = "MyKeys";            
cookie.Values.Add("Key1", "ValueKey1");
cookie.Values.Add("Key2", "ValueKey2");
cookie.Values.Add("Key3", "ValueKey3");
//etc...

Request.Cookies.Add(cookie);

//This code reads the data from the cookie.
HttpCookie rcookie = Response.Cookies.Get("MyKeys");
string value1, value2, value3;
//We verify it the variable is null because the cookie might not exist in the users browser. If so, this variable would be null
if (rcookie != null) 
{
    value1 = rcookie.Values.Get("Key1");
    value2 = rcookie.Values.Get("Key2");
    value3 = rcookie.Values.Get("Key3");
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top