我使用FormsAuthentication.SetAuthCookie
来使用基于cookie的会话。
是否有一个简单的方法,以便我可以设置过期的sessionId的重用,每次会话到期时ASP.NET
都会创建一个新的会话ID。
感谢。
答案 0 :(得分:0)
你必须处理几个不同的案件。第一种是当有人点击退出按钮时。第二个是会话本身已过期(但没有发生用户操作)。
在第二个实例中,表单身份验证将自动将您发送到您在web.config中定义的登录页面。
您可以执行以下操作
[AllowAnonymous]
public ActionResult Login()
{
Response.Cookies.Add(CreateExpiredBlankCookie("ASP.NET_SessionId"));
return View();
}
private HttpCookie CreateExpiredBlankCookie(string name)
{
var cookie = new HttpCookie(name, "");
cookie.Expires = DateTime.Now.AddDays(-1);
return cookie;
}
答案 1 :(得分:-1)
您可以使用Session.Abandon()来阻止会话重用。
由于HTTP是无状态的,因此您无法知道用户何时关闭了浏览器。但是,您可以在每个页面上放置一个注销按钮,并且作为按钮处理的一部分,调用Session.Abandon以防止第三方重复使用它。
除此之外,还需要HTTPS并确保您的Cookie也需要HTTPS。