设置Azure AppFabric访问控制服务cookie到期时间

时间:2012-01-08 22:13:32

标签: c# asp.net-mvc-3 httpcookie azure-appfabric accesscontrolservice

我在ASP.NET MVC 3应用程序中使用Azure的访问控制服务。我可以成功登录,阅读我需要的所有索赔数据等。一切正常,除了一件事。经过一段时间(不到一小时),身份验证cookie似乎已过期(至少它们不会再出现在请求的cookie集合中)。

我仍在使用开发模拟,没有SSL(身份验证服务本身除外)。

我使用以下操作过滤器来限制对某些控制器的访问:

public class PersonLoginFilter : ActionFilterAttribute, IActionFilter
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);

        // Check whether the user is logged in
        if (filterContext.HttpContext.Request.IsAuthenticated)
        {
             // ...
        }
    }
}

如何增加到期时间?或者在我的动作过滤器中手动更新cookie是否合适?

提前致谢!

1 个答案:

答案 0 :(得分:2)

ACS生成的令牌也有一个到期时间(您可以在管理门户中设置,最多约24小时),但您也可以在web.config中设置一个值

<securityTokenHandlers> 
<add type="Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler..."> 
<sessionTokenRequirement lifetime="0:02" /> 
</add> 
</securityTokenHandlers>

ASP.NET采用两者中最小的值。

有关详细信息,我建议发布此博文:http://blogs.msdn.com/b/vbertocci/archive/2010/06/16/warning-sliding-sessions-are-closer-than-they-appear.aspx

它没有明确回答你的问题,但它涵盖了有关过期的概念,讨论了滑动会话安全令牌。