コード例 #1
0
        public static ClaimsProviderTest WithUserClaims()
        {
            var provider = new ClaimsProviderTest();

            provider.Claims.Add(new Claim(ClaimTypes.NameIdentifier, Guid.NewGuid().ToString()));
            provider.Claims.Add(new Claim(ClaimTypes.Name, "testUser"));
            provider.Claims.Add(new Claim(ClaimTypes.Role, Role.User));
            return(provider);
        }
コード例 #2
0
        public static HttpClient CreateClientWithTokenAuth <T>(this WebApplicationFactory <T> factory, ClaimsProviderTest claimsProvider) where T : class
        {
            var configuration           = factory.Services.GetRequiredService <IConfiguration>();
            var jwtIssuerOptionsSection = configuration.GetSection(nameof(JwtIssuerOptions));
            var jwtSettings             = jwtIssuerOptionsSection.Get <JwtIssuerOptions>();
            var signingCredentials      = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.SigningKey)), SecurityAlgorithms.HmacSha256Signature);
            var token = new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken(jwtSettings.Issuer, jwtSettings.Audience, claimsProvider.Claims, null, DateTime.UtcNow.AddMinutes(30), signingCredentials));

            var client = factory.CreateClient(new WebApplicationFactoryClientOptions
            {
                AllowAutoRedirect = false
            });

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(JwtBearerDefaults.AuthenticationScheme, token);
            return(client);
        }