我在ASP.NET MVC项目中使用表单身份验证。
当前用户点击Exit链接时,代码执行按顺序执行的操作:
System.Web.Security.FormsAuthentication.SignOut();
Session.Abandon();
第二次通话不合适,因为我根本没有使用会话。
问题是,如果我使用管理员帐户登录,我可以看到用户仍然登录。
我做错了什么?
感谢您的帮助!
修改:
添加登录代码只是为了完成
if (ModelState.IsValid) {
if (MembershipService.ValidateUser(model.UserName, model.Password)) {
System.Web.Security.FormsAuthentication.SignIn(model.UserName, model.RememberMe);
if (!String.IsNullOrEmpty(returnUrl)) {
return Redirect(returnUrl);
}
else {
return RedirectToAction("Index", "Home");
}
}
else {
ModelState.AddModelError("", "Error....");
}
}
答案 0 :(得分:0)
确定。我找到了问题。
我正在使用,向当前的loggein用户显示以下调用
MembershipUser user = Membership.GetUser(userKey,true) if(user.IsOnline){ ... }
我已经意识到GetUser方法的第二个参数将User状态设置为online并更新数据存储中的LastActivity字段。 我不知道为什么这样做是这样的,但就是这样......