注销并将用户重定向到登录屏幕ASP NET MVC/C#
我正在寻找一种方法来结束我的会话,并在系统超时时将用户重定向到登录屏幕 根据我所研究的一些示例,我尝试使用Session.about()。但我不知道我做错了什么。下面是我在Global.asax中要执行的代码:注销并将用户重定向到登录屏幕ASP NET MVC/C#,c#,asp.net-mvc,C#,Asp.net Mvc,我正在寻找一种方法来结束我的会话,并在系统超时时将用户重定向到登录屏幕 根据我所研究的一些示例,我尝试使用Session.about()。但我不知道我做错了什么。下面是我在Global.asax中要执行的代码: protected void Application_EndRequest(object sender, EventArgs e) { var context = new HttpContextWrapper(Context); if (cont
protected void Application_EndRequest(object sender, EventArgs e)
{
var context = new HttpContextWrapper(Context);
if (context.Response.StatusCode == 302 && context.Request.IsAjaxRequest())
{
var redirectLocation = context.Response.RedirectLocation.ToString();
context.Response.RedirectLocation = null;
context.Response.ContentType = "text/plain";
context.Response.Write("session_timeout;" + redirectLocation);
Session.Abandon();
Response.Redirect("~/Account/Login");
}
}
代码只运行到:context.Session.about();除非我刷新页面,否则不会重定向到登录屏幕。我可以这样解决我的问题:
public ActionResult LogOff()
{
HttpContext.Session.Remove(SessionKeys.UserType);//This will remove all keys from session variable. For example, if your session contains id, name, phone number, email etc.
HttpContext.Session.RemoveAll();//This will remove all session from application
FormsAuthentication.SignOut();
return RedirectToAction("Login", "Account");
}
1-我通过添加以下标记在我的Web.config中设置超时时间:
<sessionState timeout="16"></sessionState>
注意:此函数已放在我的_布局中。chshtml我可以通过以下方式解决我的问题: 1-我通过添加以下标记在我的Web.config中设置超时时间:
<sessionState timeout="16"></sessionState>
注意:此函数放在我的_布局中。chshtml是否尝试了context.Response.Redirect(“~/Account/Login”);代替响应。重定向(“~/Account/Login”);既然你说我已经试过了,context.Session.about();和context.Response.Redirect(“~/Account/Login”);但它不起作用。我在Session.放弃()中设置了一个断点,并意识到没有执行重定向。。。。。我单击“保存”按钮,系统没有响应,我想重定向到页面登录。您正在检查它是否是AjaxRequest,我认为如果是Ajax请求,客户端不会重定向。您可能还想终止身份验证票证。我不知道如何执行此操作。我已经在寻找一种方法,但没有找到。您是否尝试了context.Response.Redirect(“~/Account/Login”);代替响应。重定向(“~/Account/Login”);既然你说我已经试过了,context.Session.about();和context.Response.Redirect(“~/Account/Login”);但它不起作用。我在Session.放弃()中设置了一个断点,并意识到没有执行重定向。。。。。我单击“保存”按钮,系统没有响应,我想重定向到页面登录。您正在检查它是否是AjaxRequest,我认为如果是Ajax请求,客户端不会重定向。您可能还想终止身份验证票证。我不知道如何执行此操作。我已经寻找了一种方法,但是我没有找到。谢谢你的回复,但是我想要的不是通过单击退出按钮退出系统,而是在相同的der超时时离开系统。谢谢你的回复,但是我想要的不是通过单击退出按钮退出系统,而是在相同的der超时时离开系统。