コード例 #1
0
 public UsersManagementPlugin(UserManagementConfig config = null)
 {
     if (config == null)
     {
         config = new UserManagementConfig();
     }
     _config = config;
 }
コード例 #2
0
        public static void AddHttpClients(
            this IServiceCollection services, AuthenticationConfig authConfig, UserManagementConfig userManagementConfig)
        {
            services.AddTransient <BaseHttpMessageHandler>();
            services.AddHttpClient(HttpClientNames.AUTHENTICATION_CLIENT, c =>
            {
                c.BaseAddress = new Uri(authConfig.Authority);
            }).AddHttpMessageHandler <BaseHttpMessageHandler>();

            services.AddTransient <IServiceAuthenticator, ServiceToServiceAuthenticator>();

            var serviceProvider = services.BuildServiceProvider();
            var serviceAuth     = serviceProvider.GetRequiredService <IServiceAuthenticator>();

            services.AddTransient <UserManagerErrorResponseHandler>();
            services.AddHttpClient(HttpClientNames.USER_MANAGEMENT_CLIENT, async http =>
            {
                var token        = await serviceAuth.AuthenticateAsync();
                http.BaseAddress = new Uri(userManagementConfig.BaseUrl);
                http.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
            })
            .AddHttpMessageHandler <UserManagerErrorResponseHandler>();
        }
コード例 #3
0
 public ServiceToServiceAuthenticator(IHttpClientFactory factory, UserManagementConfig config, IDistributedCache cache)
 {
     client      = factory.CreateClient(HttpClientNames.AUTHENTICATION_CLIENT);
     this.config = config;
     this.cache  = cache;
 }
コード例 #4
0
 public UserRepository(IHttpClientFactory httpFactory, UserManagementConfig config)
 {
     http        = httpFactory.CreateClient(HttpClientNames.USER_MANAGEMENT_CLIENT);
     this.config = config;
 }