2016-08-05 29 views
1

ich in meinem Home -Controller folgendem Code habe:Warum kann ich keinen Cookie löschen?

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"); 
    } 
} 

Problem: Die Anwendung löscht den Cookie nicht (warum auch immer) und in einer Schleife ausgeführt werden, da die Anwendung in den Benutzer nicht finden die Daten. (Das Problem ist nicht, dass die Anwendung den Benutzer nicht findet, das Problem ist das Cookie-Problem)

Frage: Wie kann ich dieses Problem beheben, weil in einem anderen Projekt von mir ich gut funktioniert. Ich habe den Code aus meinem anderen Projekt kopiert und in mein neues Projekt eingefügt, aber im neuen Projekt wird es nicht funktionieren. Ja Ich benutze die gleiche Version des asp.net Framework :)

Hoffe Ihr könnt mir helfen ... ich am Ende meines Know-how über C# bin ....

Ihnen sehr danken.

Antwort

3

genutztes Objekt Ablaufen, und legen negativen Wert darauf, dieser Wille verfällt das Cookie dh in Ihrem Wort dieses entfernt werden aus Cookie-Liste.

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

sorry, es ist nicht – Yannik

+0

arbeiten Dies funktioniert, aber es fühlt sich an, dass nicht der richtige Weg ist, ich weiß, das ... – Yannik

+0

Wie pro meiner Erfahrung und Wissen ist dies die einzige Art und Weise zu tun –