在ASP.NET MVC中使用ServiceStack身份验证时,我想实现一个滑动会话到期。在@mythz的帮助下,我得到了它的工作。对于任何想要这样做的人,请参阅我的最终实施答案。
答案 0 :(得分:2)
这是我在ASP.NET MVC中使用ServiceStack身份验证时滑动会话的最终实现...
public class SlideSessionExpirationAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var ssController = filterContext.Controller as ServiceStackController;
if (ssController == null) return;
// Get session and re-save to slide/update the expiration date
var session = ssController.ServiceStackRequest.GetSession();
if(session != null && session.IsAuthenticated)
ssController.ServiceStackRequest.SaveSession(session, AppHost.SessionExpiration);
base.OnActionExecuting(filterContext);
}
}
...其中AppHost.SessionExpiration
是我在static readonly TimeSpan
中声明的AppHost.cs
。要使用它,你可以通过[SlideSessionExpiration]
在控制器或方法上拍打属性,或者你可以通过FilterConfig.cs
内的全局过滤器(就像我做的那样)通过...添加它...
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
/* ... other filters ... */
filters.Add(new SlideSessionExpirationAttribute());
}