Я использую MVC4, и в моем сценарии я хочу иметь возможность удалить анонимный куки-файл, чтобы новый автоматически генерировался, даже если пользователь никогда не входит в систему. (Чтобы тестерам не нужно было удалять их куки каждый раз, когда они хотят вернуться на сайт в качестве нового пользователя.) AnonymousIdentificationModule.ClearAnonymousIdentifier не работает в этом сценарии, потому что вы можете вызвать это, только если пользователь аутентифицирован. (Похоже, что необязательный параметр для этой функции был бы хорош.) Таким образом, в качестве альтернативы вы должны переписать анонимный cookie с датой истечения в прошлом. Я сделал это с помощью базового метода действий, к которому анонимный пользователь может обращаться в любое время и перезапускает как новый анонимный пользователь:
[HttpGet]
[AllowAnonymous]
public ActionResult ClearMyCookie()
{
HttpCookie cookie = new HttpCookie(".ASPXANONYMOUS");
cookie.Expires = DateTime.Now.AddDays(-10);
Response.Cookies.Add(cookie);
// Make sure to also do Session.Clear() if you're using session.
return RedirectToAction("index", "home");
}
Измените ".ASPXANONYMOUS" на имя вашего куки. Я использую анонимное имя по умолчанию выше.