2010-05-11 13 views
19

ile oturumu kapatın: ASP.NET MVC gerçekten ben çok gibi bir kontrolör üzerinde oturum kapatma eylemi var, Form Kimlik Doğrulaması

public ActionResult Logoff() 
    { 
     var x = Request.IsAuthenticated; 
     var y = User.Identity.IsAuthenticated; 

     FormsAuthentication.SignOut(); 
     Session.Abandon(); 

     var a = Request.IsAuthenticated; 
     var b = User.Identity.IsAuthenticated; 

     return View(); 
    } 

Ancak x, y, a, b, gerçek hepsi

. Bu nedenle, görünümüm işlendiğinde, kullanıcı giriş yapmış gibi davranır. Birisi lütfen bir çözüm ve/veya açıklama sağlayabilir mi?

cevap

42

FormsAuthentication.SignOut() kimlik doğrulama tanımlama kaldırır, bu nedenle ondan sonra yerine müşteri bildirilir böylece bir görünüm dönen yönlendirmek gerekir:

public ActionResult Logoff() 
{ 
    FormsAuthentication.SignOut(); 
    return RedirectToAction("Index"); 
} 

Şimdi Index eylem kullanıcı artık doğrulanmış olacaktır.

+3

Darin sağda. Zaman zaman yaptığım şey bir "return Redirect (FormsAuthentication.LoginUrl);" Bu, kullanıcıyı web.config dosyanızdaki kimlik doğrulama alanında bildirdiğiniz giriş sayfasına geri gönderir. Aynı şey gerçekten ... –