在ajax调用特定操作期间跳过RenewTicketIfOld

时间:2013-01-25 08:49:44

标签: ajax asp.net-mvc-4 forms-authentication

我使用setInterval和ajax调用来检查每分钟的新消息。此调用扩展了身份验证cookie(因为我将slidingExpiration设置为true),因此身份验证永不过期。

This question有类似的问题,但解决方案是针对.net项目,我看不出如何将它应用到我的MVC项目中。

如果一个解决方案采用像[DoNotExtendAuthentication]这样的属性形式,我可以拍摄一个动作,那将是很好的,但任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:4)

public class DoNotExtendAuthenticationAttribute : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        filterContext.HttpContext.Response.Cookies.Remove(
            FormsAuthentication.FormsCookieName
        );
    }
}

然后:

[Authorize]
[DoNotExtendAuthentication]
public ActionResult SomeAction()
{
    ...
}