2

我在ASP.NET MVC 3應用程序中使用Azure的訪問控制服務。我可以成功登錄,閱讀所有我需要的索賠數據等。一切正常,除了一件事。經過一段時間(不到一小時),身份驗證Cookie似乎即將過期(至少它們不再顯示在請求的cookie集合中)。設置Azure AppFabric訪問控制服務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是否合適?

在此先感謝!

回答

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

它沒有明確地回答你的問題,但它涵蓋了關於它的一個滑動會話安全令牌的討論到期的概念。

+0

謝謝你。管理門戶中的時間設置爲10分鐘。可能是因爲這個原因。我已經將它增加到24小時進行測試。 – christian 2012-01-09 00:16:19