【发布时间】:2016-08-23 11:33:01
【问题描述】:
我想在会话超时后让用户注销并且在注销时我正在插入该特定用户的值在他的标志中进行更改,比如如果他的标志是 1,他已登录,如果他的标志为 0,他已注销所以我想在他注销时将标志值从 1 更改为 0。
我的注销操作:
public ActionResult Logout(short? UserId12)
{
FormsAuthentication.SignOut();
//Session["UserName"] = null;
//Session["BranchCode"] = null;
//Session["GroupID"] = null;
USER_LOGIN obj = new USER_LOGIN();
obj = db.USER_LOGIN.Find(UserId12);
obj.LOGOUTFLAG = 0;
obj.LOGOUT_DATETIME = System.DateTime.Now;
db.SaveChanges();
Session.RemoveAll();
return RedirectToAction("Login", "Account");
}
我试图通过 jquery 发送用户 ID 来解决这个问题,但问题是用户 ID 正在会话中它会按时过期
<script>
var url= '@Url.Action("Logout", "Account", new { UserId12 = Session["UserId1"] })';
var sessTm = @Session.Timeout
sessTm = sessTm * 60;
sessTm = sessTm - 10;
function mTmout() {
sessTm -= 1;
if (sessTm == 0) {
window.location = url;
} else {
setTimeout(mTmout, 1000);
}
};
$(document).ready(function () {
$(".tmout").html(sessTm);
setTimeout(mTmout, 1000);
});
【问题讨论】:
标签: javascript c# jquery asp.net-mvc