Многозначные / многомерные файлы cookie обрабатываются по-разному в разных реализациях, но концепция по сути одна и та же.
Они используют символ разделителя в пределах значения cookie, чтобы отделить пары имя-значение.
Google использует символ канала (|
) в качестве разделителя, а .NET использует амперсанд (&
) в качестве разделителя.
Если вы установите cookie, как в приведенном выше коде, результат будет следующим:
//.NET
context.Response.Cookies["visitorData"]["lastDateVisited"] = DateTime.Now.ToString();
context.Response.Cookies["visitorData"]["example2"] = "sillyString";
context.Response.Cookies[_visitorData].Expires = DateTime.Now.AddMonths(3);
// JavaScript Console
console.log(document.cookie)
visitorData=lastDateVisited=14/05/2012 16:09:09&example2=sillyString; other cookies here
Теперь вы можете найти visitorData=
в document.cookie
и substr()
до следующего ;
.
Затем split()
это в парах имя-значение.