Как добавить последовательный ключ в клиентскую систему, когда он посещает наш веб-сайт

StackOverflow https://stackoverflow.com/questions/3163336

  •  02-10-2019
  •  | 
  •  

Вопрос

Я хочу добавить 3 последовательного ключа в клиентскую систему, используя httpcookie, когда он посетил мой сайт мой веб-сайт с курса в asp.net mvc

но

Серийный ключ отличается отличается не то же самое.

Когда я добавляю 4-й файл cookie, то 1 ключ автоматически удаляется.

Как я могу сделать это.

Когда пользователь хочет увидеть, то он может видеть последние 3 клавиши.

Знаете ли вы, как добавить это файлы cookie в клиентскую систему на веб-сайте ASP.NET MVC.

Как я могу добавить Key1, ключ 2, Key3 к клиентской системе.

Это было полезно?

Решение

Вот как вы можете сделать это.

Написание серийных клавиш.

//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);

Чтение файла cookie серийного ключа.

//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.
}

Другие советы

Вы можете добавить файлы cookie пользователю, когда пользователь запускает сеанс. Это можно сделать путем обработки сеанса, начните даже в файле Global.Asax вашего приложения Добавление в логическом коде для создания этих клавиш.

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

Тогда для 4-го вещей cookie вы говорили, вы можете создать логику кода, ссылаясь на файлы cookie пользователей, используя Response.Cookies["cookie"] или удалить один, используя Request.Cookies.Remove("cookie");

Все ограничение браузера так или иначе количество файлов cookie, который может хранить определенный сайт. Если, например, ваш браузер принимает N Cookies, то при отправке N + 1 браузер удалит ваш старший. Мне кажется, что это то, что происходит.

Возможное решение состоит в том, чтобы использовать одно печенье с различными подскалями вместо одного. Таким образом, вы можете иметь в одном файле cookie столько ценностей, сколько вы хотите (всегда подвергается максимальному размеру файла cookie, который составляет 4086 байтов).

Код для этого будет что-то вроде:

//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");
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top