Beispiel #1
0
        public void Given_A_DateTime_Should_Convert_It_To_Unix_EpochDate()
        {
            // Arrange
            const string expected = "1353369600";

            const string dateString = "2012-11-20T00:00:00Z";
            var          datetime   = DateTime.Parse(dateString);

            // Act
            var result = DatetimeHelpers.ToUnixEpochDate(datetime);

            // Assert
            result.Should().BeEquivalentTo(expected);
        }
        private async Task <List <Claim> > GetValidClaims(ApplicationUser user)
        {
            var options = new IdentityOptions();
            var claims  = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, user.Id),
                new Claim(JwtRegisteredClaimNames.UniqueName, user.UserName),
                new Claim(JwtRegisteredClaimNames.GivenName, user.FullName),
                new Claim("profile-image-url", user.ProfileImageUrl ?? string.Empty),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.Iat, DatetimeHelpers.ToUnixEpochDate(DateTime.Now),
                          ClaimValueTypes.Integer64),
                new Claim(options.ClaimsIdentity.UserNameClaimType, user.UserName)
            };
            var userClaims = await _userManager.GetClaimsAsync(user);

            var userRoles = await _userManager.GetRolesAsync(user);

            claims.AddRange(userClaims);
            foreach (var userRole in userRoles)
            {
                claims.Add(new Claim(ClaimTypes.Role, userRole));
                var role = await _roleManager.FindByNameAsync(userRole);

                if (role != null)
                {
                    var roleClaims = await _roleManager.GetClaimsAsync(role);

                    foreach (var roleClaim in roleClaims)
                    {
                        claims.Add(roleClaim);
                    }
                }
            }

            return(claims);
        }