viv*_*vek 3 asp.net-mvc session-timeout action-filter
我遇到频繁的会话超时问题.
我想编写一个可以在每个控制器上使用的通用过滤器,过滤器应该将用户重定向到登录,并在登录后返回用户发送最后一个请求的位置.
你可以尝试这样的事情:
public class SessionExpireAttribute : ActionFilterAttribute {
public override void OnActionExecuted(ActionExecutedContext filterContext) {
base.OnActionExecuted(filterContext);
}
public override void OnActionExecuting(ActionExecutingContext filterContext) {
if (filterContext.HttpContext.Session != null) {
if (filterContext.HttpContext.Session.IsNewSession) {
var sessionCookie = filterContext.HttpContext.Request.Headers["Cookie"];
if ((sessionCookie != null) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0)) {
// redirect to login
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8312 次 |
| 最近记录: |