2014-12-22 68 views
0

請幫助我理解sessiontoken的到期時間的概念。通過SessionAuthenticationModule生存期設置的WIF會話令牌

以下是我在收到STS令牌後設置會話令牌的方式。

var principal = validationfunction();//returns claimsprincipal 
      if (principal != null) 
      { 
       var token = new SessionSecurityToken(principal.ClaimsPrincipal) 
       { 
        IsReferenceMode = false 

       }; 

       //this makes sure that the identity and claims are written to the cookie. 
       FederatedAuthentication.WSFederationAuthenticationModule.SetPrincipalAndWriteSessionToken(token, true); 
      } 

請確認這是否是真還是假:

  1. 如果令牌壽命爲10分鐘。如果用戶處於非活動狀態10分鐘,並且不向 網站發送任何請求,則會話令牌過期並將其重定向到STS登錄頁面。

  2. 如果用戶處於活動狀態,並且不斷刷新頁面/訪問不同的頁面,則sessiontoken生命週期將獲得
    刷新。這意味着每次用戶訪問頁面時令牌都會獲得新的到期值。所以用戶不會每10分鐘重定向到登錄頁面。

  3. 如果用戶請求受STS保護的資源(web api),令牌的生存時間將被視爲絕對的。含義無論用戶是否活動,在用戶請求Web API後生成令牌10分鐘後,令牌將無效並重定向到STS登錄頁面。

上述概念是否正確?

回答

1
  1. 您需要自己設置令牌生存期。默認值是IIRC - 10h。當令牌已過期並且您正在訪問受保護資源時,應用程序將發出401.如果您擁有WsFed模塊 - 這將導致往返STS

  2. 會話安全令牌默認爲絕對到期

  3. 您不會使用cookie來保護Web API - 重定向對於API(cookie身份驗證)沒有意義。

+0

所以它意味着在網站上,無論用戶是否活動..會話安全令牌將在其生命週期的10分鐘後過期。正確? – user1213831

+0

除非你做了特別的事 - 會話令牌有絕對過期,是的。 – leastprivilege