Usando Cookie en Asp.Net Mvc 4
Tengo aplicación web enAsp.Net MVC4 y quiero usarGalleta para el inicio y cierre de sesión del usuario. Así que mis acciones son las siguientes:
Login Action
[HttpPost]
public ActionResult Login(string username, string pass)
{
if (ModelState.IsValid)
{
var newUser = _userRepository.GetUserByNameAndPassword(username, pass);
if (newUser != null)
{
var json = JsonConvert.SerializeObject(newUser);
var userCookie = new HttpCookie("user", json);
userCookie.Expires.AddDays(365);
HttpContext.Response.Cookies.Add(userCookie);
return RedirectToActionPermanent("Index");
}
}
return View("UserLog");
}
Acción LogOut
public ActionResult UserOut()
{
if (Request.Cookies["user"] != null)
{
var user = new HttpCookie("user")
{
Expires = DateTime.Now.AddDays(-1),
Value = null
};
Response.Cookies.Add(user);
}
return RedirectToActionPermanent("UserLog");
}
Y utilizo esta cookie en _Loyout como sigue:
@using EShop.Core
@using Newtonsoft.Json
@{
var userInCookie = Request.Cookies["user"];
}
...
@if (userInCookie != null && userInCookie.Value)
{
<li><a href="#">Salam</a></li>
<li><a href="@Url.Action("UserOut", "Home")">Cıxış</a></li>
}
else
{
<li><a href="@Url.Action("UserLog", "Home")">Giriş</a></li>
}
Pero cuando yohacer clic * Acción de UserOut * esta acción sucede la primera vez, pero luego no funciona. Puse un punto de ruptura para mirar el proceso pero se poneUserLog la acción noUserOut. Mi pregunta es que donde uso una forma incorrecta de cookie? ¿Cuál es la mejor manera de usar cookies enAsp.Net Mvc4 para este escenario?