Как добавить последовательный ключ в клиентскую систему, когда он посещает наш веб-сайт
-
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");
}