В настоящее время я работаю над существующим проектом в ASP.NET MVC и столкнулся с странной проблемой.
У меня есть клиентский компьютер, который изменяет файл cookie только один раз. В первый раз (после очистки файлов cookie в браузере) файл cookie точно обновляется.
После этого файл cookie больше не будет обновляться.
Тем не менее, на моем компьютере с локальным хостом и на моем отдельном клиентском компьютере с одним и тем же кодом я не могу воспроизвести проблему. Он постоянно обновляет файлы cookie.
Это одна и та же кодовая база и база данных. На самом деле нет никакой разницы.
Мой клиент также упоминает, что он «случайно» перестал работать.
Есть ли какие-либо настройки безопасности в Chrome/IIS, которые могли бы были изменены на моем клиентском сервере, чтобы привести к такому странному поведению?
Я в тупике.
Код ниже:
public void UpdateTestResultCookies(TestDataViewModel obj)
{
DateTime now = DateTime.Now;
HttpCookie techCookie = Request.Cookies["resultsTechnicianSearch"];
HttpCookie engCookie = Request.Cookies["resultsEngineerSearch"];
HttpCookie stallCookie = Request.Cookies["resultsStallSearch"];
HttpCookie labCookie = Request.Cookies["resultsLabSearch"];
HttpCookie daysCookie = Request.Cookies["resultsDaysSearch"];
//technician
if (techCookie != null) //Cookie exists, update
{
if (String.IsNullOrEmpty(obj.technician)) //no value, clear cookie
{
techCookie.Expires = now.AddDays(-10);
Response.SetCookie(techCookie);
}
else
{
techCookie.Value = obj.technician.ToString();
techCookie.Expires = now.AddYears(1);
Response.SetCookie(techCookie);
}
}
else
{
if (!String.IsNullOrEmpty(obj.technician)) //only add cookie if value not null
{
//New cookie entry
HttpCookie newTechCookie = new HttpCookie("resultsTechnicianSearch");
newTechCookie.Value = obj.technician.ToString();
newTechCookie.Expires = now.AddYears(1);
Response.Cookies.Add(newTechCookie);
}
}
//engineer
if (engCookie != null) //Cookie exists, update
{
if (String.IsNullOrEmpty(obj.engineer)) //no value, clear cookie
{
engCookie.Expires = now.AddDays(-10);
Response.SetCookie(engCookie);
}
else
{
engCookie.Value = obj.engineer.ToString();
engCookie.Expires = now.AddYears(1);
Response.SetCookie(engCookie);
}
}
else
{
if (!String.IsNullOrEmpty(obj.engineer)) //only add cookie if value not null
{
HttpCookie newEngCookie = new HttpCookie("resultsEngineerSearch");
//New cookie entry
newEngCookie.Value = obj.engineer.ToString();
newEngCookie.Expires = now.AddYears(1);
Response.Cookies.Add(newEngCookie);
}
}
//rest of code follows same pattern
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... -behaviour