Как удалить файлы cookie в ASP.NET после смены ключа компьютера, но остаться в том же поддомене?
В настоящее время у нас есть файлы cookie на example.domain.com, но нам нужно перейти на файлы cookie с подстановочными знаками (.domain.com), чтобы файлы cookie также работали на foo.domain.com. Для этого мы вручную установили машинный ключ для шифрования/дешифрования файла cookie входа asp.net. Проблема в том, что люди, у которых уже есть старый файл cookie, теперь будут получать CryptographicException при попытке доступа к сайту (поскольку он по какой-то причине пытается расшифровать старый файл cookie). Мы поменяли имя куки, но это не помогло - все равно выдает ошибку. Итак, мы поняли, что хотим удалить все старые файлы cookie. Мы пытаемся сделать это на сайте входа со следующим кодом:
var myCookies = Request.Cookies.AllKeys;
foreach (var cookieName in myCookies)
{
var cookie = Request.Cookies[cookieName];
if (cookie == null) continue;
cookie.Value = "written " + DateTime.Now;
cookie.Expires = DateTime.Now.AddYears(-1);
cookie.Domain = "example.domain.com"
Response.Cookies.Add(cookie);
}
Мы достигаем кода, и он запускается, но файлы cookie все еще остаются при проверке ресурсов Google Chrome. Так что, очевидно, удаление не сработало. Мы пробовали несколько разных способов (добавляя путь = "/", устанавливая cookie.Value в cookie.Value и т. д. По какой-то странной причине файлы cookie все еще остаются, и мы не можем их удалить.
Итак, чтобы вернуться к исходному вопросу, как мы удаляем файлы cookie в ASP.NET MVC 4.5 после изменения домена с подстановочными знаками в наших файлах cookie и явного указания ключа машины в файле web.config?