In this article I will show you to clear cookie in ajax post method call to a controller by setting the cookie expiration date to the past date. When the user request for a page from the domain or path, the browser cookie determines that the cookie expired and removed.
[HttpPost]
public JsonResult LogOut()
{
HttpContext.Session.Abandon();
//Delete the authentication ticket and sign out.
System.Web.Security.FormsAuthentication.SignOut();
// Clearauthentication cookie.
HttpCookie cookie = new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName, "");
cookie.Expires = DateTime.Now.AddYears(-1);
HttpContext.Response.Cookies.Add(cookie);
return Json(new { RedirectUrl = "/Admin" });
}
$(function () {
$("#btnlogoff").click(function () {
$.ajax({
type: 'POST',
url: '@Url.Action("LogOut", "Home", new { area = "admin" })',
data: {},
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (response) {
document.location =response.RedirectUrl;
},
error: function (xhr, ajaxOptions,thrownError) {
}
});
});
});
Here, the asp.net token based authentication cookie deleted and sign out from the web application and redirect to the sign in page.