gpt4 book ai didi

asp.net-mvc-4 - session 过期后重定向到特定页面 (MVC4)

转载 作者:行者123 更新时间:2023-12-05 00:12:02 25 4
gpt4 key购买 nike

C# MVC4 项目:我想在 session 过期时重定向到特定页面。

经过一番研究,我在 Global.asax 中添加了以下代码在我的项目中:

protected void Session_End(object sender, EventArgs e)
{
Response.Redirect("Home/Index");
}

当 session 过期时,它会在行 Response.Redirect("Home/Index"); 处抛出异常。说 The response is not available in this context
这里有什么问题?

最佳答案

MVC中最简单的方法是
在 session 过期的情况下,在每个操作中您都必须检查其 session ,如果它为空,则重定向到索引页面。

为此,您可以创建一个自定义属性,如下所示:-

这是覆盖 ActionFilterAttribute 的类。

public class SessionExpireAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext ctx = HttpContext.Current;
// check sessions here
if( HttpContext.Current.Session["username"] == null )
{
filterContext.Result = new RedirectResult("~/Home/Index");
return;
}
base.OnActionExecuting(filterContext);
}
}

然后在操作中只需添加此属性,如下所示:
[SessionExpire]
public ActionResult Index()
{
return Index();
}

或者只添加一次属性为:
[SessionExpire]
public class HomeController : Controller
{
public ActionResult Index()
{
return Index();
}
}

关于asp.net-mvc-4 - session 过期后重定向到特定页面 (MVC4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25423464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com