示例#1
0
        public void ShouldHandleActor()
        {
            // arrange
            var claims = new List <Claim>()
            {
                new Claim("sub", Guid.NewGuid().ToString()),
                new Claim("name", "John Doe"),
                new Claim("given_name", "John"),
                new Claim("family_name", "Doe"),
                new Claim("upn", "john.doe"),
                new Claim("act", Guid.NewGuid().ToString()),
                new Claim("act_upn", "actor upn"),
            };
            var identity = new ClaimsIdentity(claims, "TestAuthType");

            claimsPrincipal = new ClaimsPrincipal(identity);

            // act
            var subject = SubjectPrincipal.From(claimsPrincipal);

            // assert
            Assert.Equal(claims[5].Value, subject.SubjectId);
            Assert.Null(subject.Name);
            Assert.Null(subject.GivenName);
            Assert.Null(subject.FamilyName);
            Assert.Equal(claims[6].Value, subject.UserPrincipalName);
            Assert.NotNull(subject.Actor);
            Assert.Equal(claims[5].Value, subject.Actor.SubjectId);
            Assert.Equal(claims[6].Value, subject.Actor.UserPrincipalName);
            Assert.Null(subject.Actor.Name);
            Assert.Null(subject.Actor.GivenName);
            Assert.Null(subject.Actor.FamilyName);
        }
示例#2
0
        public void ShouldExposeSubjectClaims()
        {
            // act
            var subject = SubjectPrincipal.From(claimsPrincipal);

            // assert
            Assert.Equal(3, subject.Claims.Count());
            foreach (var claim in claimsPrincipal.Claims)
            {
                Assert.Equal(claim.Value, subject.Claims.FirstOrDefault(x => x.Type == claim.Type).Value);
            }
        }