У меня есть приложение, которое читает и записывает файлы cookie в C#. Иногда файлы cookie читаются или записываются и передаются на страницу ASP classi c. Когда classi c пишет что-то вроде course_int, оно фактически сохраняется как курс% 5Fint. Поэтому, когда я читаю или пишу в C#. Net, я конвертирую все подчеркивания в% 5F и все работает хорошо ... большую часть времени. Иногда значения cook ie «застревают» и не могут быть изменены ... даже если я прочитал их и записал в них. Net и убедился, что asp classi c не коснулся их. Я написал тестовую программу для чтения повара ie, отображения, установки значения, отображения. Результат:
54
99
Однако я запускаю его второй раз, не делая ничего, кроме обновления страницы, и получаю точно такой же вывод ... как это никогда не было написано, хотя в отладчике, я вижу, это было. Код выглядит следующим образом:
В .aspx
<%=course_int %><br />
<hr />
<%=course_int1 %><br />
В коде:
course_int = getCookieValue("course_int");
setCookieValue("course_int", "99");
course_int1 = getCookieValue("course_int");
public static string getCookieValue(string CookieName)
{
string CookieValue = "";
HttpCookie cookie = HttpContext.Current.Request.Cookies["LS"];
CookieName = CookieName.Replace("_", "%5F");
if (cookie.Values[CookieName] != null)
{
CookieValue = cookie.Values[CookieName];
}
}
return CookieValue;
public static void setCookieValue(string CookieName, string CookieValue)
{
HttpCookie cookie;
string NetCookieName = CookieName.Replace("_", "%5F");
cookie = HttpContext.Current.Request.Cookies["LS"];
if ( CookieValue == "")
{
cookie.Values.Remove(NetCookieName);
}
else
{
if (cookie.Values[NetCookieName] == null)
{
cookie.Values.Add(NetCookieName, CookieValue);
}
else
{
cookie.Values.Set(NetCookieName, CookieValue);
}
}
HttpContext.Current.Response.Cookies.Set(cookie);
HttpContext.Current.Request.Cookies.Set(cookie); (a post suggested this too)
(also tried deleting and adding, no difference)
Когда я смотрю на самого повара ie. Оцените его это:
ReturnXT = & site% 5Fname = & thm = 131 & LMW = 1 & btnFA =% 2377AAD7 & btnC =% 232E7CC1 & hovC =% 234C619C & pagF =% 2320252b & bill% 265Fdate = & урок & 1 ALL & mnuF =% 23000000 & часть = & 0 = 1 & урока% 5Fint = 0 & LNG = & сайт% 5Fparam = & ADM = 0 & ИАП = 1 & DT = & орг% 5Fint = 131 & ocode = & ДОК = & менеджер = & сайт% 5Fregion = 0 & сайт% 5Fint = 2 & сайт% 5Fkey =% 40Default & PMSG = 1 & завивки = 1% 2C2% 2C3% 2C4% 2C6% 2C10 & btnF =% 23ffffff & hovF =% 23ffffff & PII = 1 & тест% 265Fint = & ReturnX = HTTPS% 3A% 2F% 2Fhobart% 2Elearn% 2Enet% 2Flmw% 2F & урока% 5Fname = & CLD = & hmLoc = HTTPS% 3A% 2F% 2Fhobart% 2Elearn% 2Enet% 3A443% 2FDefault% 2Easp & предел% 5Fparam = & PCODE = No + Отдел & отдел = & человек% 5Fid = Stever & человек% 5Fint = 3 & Xorg = & pagC =% 23ffffff & EAI = 1 & lmt3 = 1 & Ord% 265Fdate = & гид% 265Fseq = & NB% 5F3 % 5F54 = & курс% 5Fname = BloodbornePathogensv3PS4eLessonCopy
& курс% 5Fint = 99 & dhm = C% 3A% 5Cinetpub% 5C & ED = & person% 5Fname = Stev e + Ricketts & h1 =% 2320252b & PCI = 1 и курс% 265Fint = & вопрос% 265Fint = & ord% 5Fdate = & bill% 5Fdate = & вопрос% 5Fint = & guide% 5Fseq = 0 & root =% 2Flmw% 2F
& EH = & person% 5Fkey stever & G2T = & myTM = 0 & mnuC =% 23efefef & DS = video% 2FvideoSelection% 2Easp% 3FDT% 3D1% 26SM% 3DASGN% 26bUn% 3D1% 26bLng% 3D1 и график% 265Fdate = и график% 5Fdate =
*1021* на course_int, чтобы вы могли видеть более легко. Странно, но есть и курс% 265Fint ... Не уверен, что это такое. Я пытался удалить весь повар ie, установить повар ie, добавить его. Все комбинации, которые я могу придумать.
Итак, я уверен, что что-то упустил ... он записывает 99, но в следующий раз, когда читает, все равно 54. Это сервер 2019, но также происходит на 2008 и 2016. Что я делаю не так и как я могу это исправить?