2013-11-26 8 views
20

Мне нужно удалить cookie проверки подлинности вручную (вместо использования FormsAuthentication.SignOut, по каким-то причинам не работает). Я попробовалКак вручную удалить файл cookie в asp.net MVC 4

System.Web.HttpContext.Request.Cookies.Remove(cookieName); // for example .ASPXAUTH 
System.Web.HttpContext.Response.Cookies.Remove(cookieName); // for example .ASPXAUTH 
FormsAuthentication.SignOut(); // I don't know why this one does not work 

Ни одна из этих команд не работает. На самом деле файлы cookie Response пусты и запрос cookie содержит файл cookie, который я хочу удалить, когда выполняются следующие команды: он больше не содержит куки-файл, который я удалил, но в браузере cookie все еще существует, и я могу делать то, что авторизованные пользователи могут даже после выписка.

ответ

47

Try:

if (Request.Cookies["MyCookie"] != null) 
{ 
    var c = new HttpCookie("MyCookie"); 
    c.Expires = DateTime.Now.AddDays(-1); 
    Response.Cookies.Add(c); 
} 

Более подробную информацию о MSDN.

+0

Я использовал для настройки cookie аутентификации вручную, но имя было отличным от имени cookie проверки подлинности форм. после того, как я изменил его FormsAuthentication.SignOut() на самом деле работал. спасибо anyways – Dimitri

+4

К сожалению ... http://stackoverflow.com/a/5122611/2436549 – Zafar

Смежные вопросы