ASP.NET MVC - 表单身份验证/会话ID
我想知道如何在窗体身份验证中使用会话ID?因为我在家里的控制器上做了一个Response.Write(Session.SessionID);
,然后注销。然后,我以新用户的身份登录并且会话ID相同。下面是我的登录和注销操作:ASP.NET MVC - 表单身份验证/会话ID
登录:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
try
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View("LogonError", model);
}
catch (Exception ex)
{
string test = ex.Message;
return PartialView("_Error", test);
}
}
注销等:
public ActionResult LogOff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
会议都有自己的cookie,从窗体身份验证cookie不同
原谅我,但我是表单身份验证新手。那么我将如何解决这个问题,因为我正在创建一个链接到会话ID的篮子,所以如果两个用户具有相同的会话ID,那么他们会看到其他每个项目? – CallumVass 2012-02-15 11:49:20
争夺另一个会话的唯一方法是拥有实际的cookie。但是,当您登录用户时,您可以调用Session.Abandon()来销毁当前会话。 – MikeSW 2012-02-15 11:58:32
我刚刚尝试了这一点,同时使用智能感知,并找到了放弃方法,但它仍然输出相同的会话ID – CallumVass 2012-02-15 12:01:00
有2周不同的Cookie用于认证和会话。 – Believe2014 2014-06-02 02:41:09