2016-08-05 2 views
1

У меня следующий код в моем Home -controller:Почему я не могу удалить cookie?

public ActionResult MyPage() 
{ 
    if (HttpContext.Request.Cookies["User"] == null) 
    { 
     //Create cookie 
     return RedirectToAction("MyPage", "Home"); 
    } 
    else 
    { 
     string User = HttpContext.Request.Cookies["User"].Value; 
     foreach (var user in Data.MyUsers) 
     { 
      if (user.username == User) 
      { 
       //Do some stuff 
       return View("MyPage"); 
      } 
     } 
     HttpContext.Request.Cookies.Remove("User"); 
     //HttpContext.Response.Cookies.Remove("User"); works not sorry ;(
     return RedirectToAction("MyPage", "Home"); 
    } 
} 

Проблема: Приложение не удалять куки (почему-либо) и запустить в цикле, так как приложение не находит пользователя в данные. (Проблема не в том, что приложение не находит пользователя, проблема в том, что проблема с cookie)

Вопрос: Как я могу исправить эту проблему, потому что в другом проекте я отлично работаю. Я копирую и вставляю код из моего другого проекта в свой новый проект, но в новом проекте он не будет работать. Да я использую ту же версию рамках asp.net :)

Упование вы можете мне помочь ... Я в конце моего ноухау о C# ....

Большое спасибо.

ответ

3

Использование Expire собственности, и установить отрицательное значение к нему, это будет истекает куки, то есть в вашем слове это будет удалено из список файлов cookie.

String cookieName = Request.Cookies["User"].Name; 
HttpCookie userCookie = new HttpCookie(cookieName); 
userCookie.Expires = DateTime.Now.AddDays(-1); 
Response.Cookies.Add(userCookie); 
+0

жаль, его не работает – Yannik

+0

Это работает, но он чувствует, что это не правильный способ сделать это ... – Yannik

+0

По моему опыту и знание это единственный способ я знаю, –

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