コード例 #1
0
        public void GetUserId_OnlySub(Boolean shouldHaveIdpValue)
        {
            Random random        = new Random();
            String subClaimValue = random.NextGuid().ToString();

            DefaultHttpContext context = new DefaultHttpContext();
            var claims = new List <Claim>
            {
                new Claim("sub", subClaimValue)
            };

            if (shouldHaveIdpValue == true)
            {
                new Claim("idp", random.GetAlphanumericString());
            }

            var identity = new ClaimsIdentity(claims);

            context.User = new ClaimsPrincipal(identity);

            var contextAccessorMock = new Mock <IHttpContextAccessor>(MockBehavior.Strict);

            contextAccessorMock.SetupGet(x => x.HttpContext).Returns(context).Verifiable();

            var extractor = new HttpContextBasedUserIdTokenExtractor(contextAccessorMock.Object);

            String result = extractor.GetUserId(true);

            Assert.NotNull(result);
            Assert.Equal(subClaimValue, result);

            contextAccessorMock.Verify();
        }
コード例 #2
0
        public void GetUserId_OnlySub_ButIdpRequested()
        {
            Random random        = new Random();
            String subClaimValue = random.NextGuid().ToString();
            String idpValue      = random.GetAlphanumericString();

            DefaultHttpContext context = new DefaultHttpContext();
            var claims = new List <Claim>
            {
                new Claim("sub", subClaimValue),
                new Claim("idp", idpValue),
            };

            var identity = new ClaimsIdentity(claims);

            context.User = new ClaimsPrincipal(identity);

            var contextAccessorMock = new Mock <IHttpContextAccessor>(MockBehavior.Strict);

            contextAccessorMock.SetupGet(x => x.HttpContext).Returns(context).Verifiable();

            var extractor = new HttpContextBasedUserIdTokenExtractor(contextAccessorMock.Object);

            String result = extractor.GetUserId(false);

            Assert.NotNull(result);
            Assert.Equal($"{idpValue}:{subClaimValue}", result);

            contextAccessorMock.Verify();
        }
コード例 #3
0
        public void GetExternalUserIdentiifer_NoUser(Boolean onlySub)
        {
            DefaultHttpContext context = new DefaultHttpContext();
            var contextAccessorMock    = new Mock <IHttpContextAccessor>(MockBehavior.Strict);

            contextAccessorMock.SetupGet(x => x.HttpContext).Returns(context).Verifiable();

            var extractor = new HttpContextBasedUserIdTokenExtractor(contextAccessorMock.Object);

            String result = extractor.GetUserId(onlySub);

            Assert.True(String.IsNullOrEmpty(result));
        }