private StoreToCache ( AuthenticationResultEx resultEx, string authority, string clientId, string policy, bool restrictToSingleUser, CallState callState ) : void | ||
resultEx | AuthenticationResultEx | |
authority | string | |
clientId | string | |
policy | string | |
restrictToSingleUser | bool | |
callState | CallState | |
return | void |
public void StoreToCacheUniqueScopesTest() { var tokenCache = new TokenCache(); tokenCache.AfterAccess = null; tokenCache.BeforeAccess = null; tokenCache.BeforeWrite = null; tokenCache = TokenCacheHelper.CreateCacheWithItems(); //save result with intersecting scopes var result = new AuthenticationResult("Bearer", "some-access-token", new DateTimeOffset(DateTime.UtcNow + TimeSpan.FromSeconds(ValidExpiresIn))) { User = new User { UniqueId = TestConstants.DefaultUniqueId, DisplayableId = TestConstants.DefaultDisplayableId }, ScopeSet = new HashSet<string>(new string[] { "r1/scope5", "r1/scope7" }) }; AuthenticationResultEx resultEx = new AuthenticationResultEx { Result = result, RefreshToken = "someRT" }; tokenCache.StoreToCache(resultEx, TestConstants.DefaultAuthorityHomeTenant, TestConstants.DefaultClientId, TestConstants.DefaultPolicy, TestConstants.DefaultRestrictToSingleUser, null); Assert.AreEqual(3, tokenCache.Count); AuthenticationResultEx resultExOut = tokenCache.LoadFromCache(TestConstants.DefaultAuthorityHomeTenant, new HashSet<string>(new string[] {"r1/scope5"}), TestConstants.DefaultClientId, null, TestConstants.DefaultPolicy, null); Assert.AreEqual(resultEx.RefreshToken, resultExOut.RefreshToken); Assert.AreEqual(resultEx.Result.Token, resultExOut.Result.Token); Assert.AreEqual(resultEx.Result.TokenType, resultExOut.Result.TokenType); Assert.AreEqual(resultEx.Result.User.UniqueId, resultExOut.Result.User.UniqueId); Assert.AreEqual(resultEx.Result.User.DisplayableId, resultExOut.Result.User.DisplayableId); Assert.AreEqual(resultEx.Result.User.HomeObjectId, resultExOut.Result.User.HomeObjectId); }
public void StoreToCacheNewUserRestrictToSingleUserTrueTest() { var tokenCache = new TokenCache(); TokenCacheKey key = new TokenCacheKey(TestConstants.DefaultAuthorityHomeTenant, TestConstants.DefaultScope, TestConstants.DefaultClientId, TestConstants.DefaultUniqueId, TestConstants.DefaultDisplayableId, TestConstants.DefaultHomeObjectId, TestConstants.DefaultPolicy); AuthenticationResultEx ex = new AuthenticationResultEx(); ex.Result = new AuthenticationResult("Bearer", key.ToString(), new DateTimeOffset(DateTime.UtcNow + TimeSpan.FromSeconds(ValidExpiresIn))); ex.Result.User = new User { DisplayableId = TestConstants.DefaultDisplayableId, UniqueId = TestConstants.DefaultUniqueId, HomeObjectId = TestConstants.DefaultHomeObjectId }; ex.Result.FamilyId = "1"; ex.RefreshToken = "someRT"; tokenCache.tokenCacheDictionary[key] = ex; var result = new AuthenticationResult("Bearer", "some-access-token", new DateTimeOffset(DateTime.UtcNow + TimeSpan.FromSeconds(ValidExpiresIn))) { User = new User { UniqueId = TestConstants.DefaultUniqueId+"more", DisplayableId = TestConstants.DefaultDisplayableId }, ScopeSet = new HashSet<string>(new string[] { "r1/scope5", "r1/scope7" }) }; AuthenticationResultEx resultEx = new AuthenticationResultEx { Result = result, RefreshToken = "someRT" }; try { tokenCache.StoreToCache(resultEx, TestConstants.DefaultAuthorityGuestTenant, TestConstants.DefaultClientId, TestConstants.DefaultPolicy, true, null); Assert.Fail("MsalException should be thrown here"); } catch (MsalException me) { Assert.AreEqual(MsalError.InvalidCacheOperation, me.ErrorCode); Assert.AreEqual("Cannot add more than 1 user with a different unique id when RestrictToSingleUser is set to TRUE.", me.Message); } }