private static IGrandIdAuthenticationBuilder AddGrandIdApiClient(this IGrandIdAuthenticationBuilder builder, string apiKey, string bankIdServiceKey) { builder.AuthenticationBuilder.Services.TryAddTransient(x => new GrandIdApiClientConfiguration(apiKey, bankIdServiceKey)); builder.AuthenticationBuilder.Services.TryAddTransient <IGrandIdApiClient, GrandIdApiClient>(); return(builder); }
internal static IGrandIdAuthenticationBuilder AddBankIdScheme(this IGrandIdAuthenticationBuilder builder, string authenticationScheme, string displayName, PathString callpackPath, GrandIdBankIdMode mode, Action <GrandIdBankIdAuthenticationOptions> configureOptions) { builder.AuthenticationBuilder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <IPostConfigureOptions <GrandIdBankIdAuthenticationOptions>, GrandIdBankIdAuthenticationPostConfigureOptions>()); builder.AuthenticationBuilder.Services.Configure <GrandIdBankIdAuthenticationOptions>(authenticationScheme, options => { options.CallbackPath = callpackPath; options.GrandIdBankIdMode = mode; }); builder.AuthenticationBuilder.AddScheme <GrandIdBankIdAuthenticationOptions, GrandIdBankIdAuthenticationHandler>( authenticationScheme, displayName, configureOptions ); return(builder); }
private static IGrandIdAuthenticationBuilder UseEnvironment(this IGrandIdAuthenticationBuilder builder, Uri apiBaseUrl, Action <IGrandIdEnvironmentConfiguration> configuration) { var environmentConfiguration = new GrandIdEnvironmentConfiguration(); configuration(environmentConfiguration); if (string.IsNullOrEmpty(environmentConfiguration.ApiKey)) { throw new InvalidOperationException($"A valid '{nameof(environmentConfiguration.ApiKey)}' must be provided.'"); } builder.EnableHttpClient(); builder.ConfigureHttpClient(httpClient => { httpClient.BaseAddress = apiBaseUrl; }); builder.AddGrandIdApiClient(environmentConfiguration.ApiKey, environmentConfiguration.BankIdServiceKey); return(builder); }
public static IGrandIdAuthenticationBuilder AddBankIdChooseDevice(this IGrandIdAuthenticationBuilder builder, string authenticationScheme, string displayName, Action <GrandIdBankIdAuthenticationOptions> configureOptions) => AddBankIdScheme(builder, authenticationScheme, displayName, GrandIdAuthenticationDefaults.BankIdChooseDeviceCallpackPath, GrandIdBankIdMode.ChooseDevice, configureOptions);
public static IGrandIdAuthenticationBuilder AddBankIdChooseDevice(this IGrandIdAuthenticationBuilder builder, Action <GrandIdBankIdAuthenticationOptions> configureOptions) => AddBankIdChooseDevice(builder, GrandIdAuthenticationDefaults.BankIdChooseDeviceAuthenticationScheme, GrandIdAuthenticationDefaults.BankIdChooseDeviceDisplayName, configureOptions);
public static IGrandIdAuthenticationBuilder AddBankIdChooseDevice(this IGrandIdAuthenticationBuilder builder) => AddBankIdChooseDevice(builder, options => { });
/// <summary> /// Configures options that will apply to all GrandID BankID schemes. /// </summary> /// <param name="builder"></param> /// <param name="configureOptions"></param> /// <returns></returns> public static IGrandIdAuthenticationBuilder ConfigureBankId(this IGrandIdAuthenticationBuilder builder, Action <GrandIdBankIdAuthenticationOptions> configureOptions) { builder.AuthenticationBuilder.Services.ConfigureAll(configureOptions); return(builder); }
private static IGrandIdAuthenticationBuilder UseSimulatedEnvironment(this IGrandIdAuthenticationBuilder builder, Func <IServiceProvider, IGrandIdApiClient> grandIdDevelopmentApiClient) { builder.AuthenticationBuilder.Services.TryAddSingleton(grandIdDevelopmentApiClient); return(builder); }
public static IGrandIdAuthenticationBuilder UseSimulatedEnvironment(this IGrandIdAuthenticationBuilder builder, string givenName, string surname, string personalIdentityNumber) => UseSimulatedEnvironment(builder, x => new GrandIdSimulatedApiClient(givenName, surname, personalIdentityNumber));
/// <summary> /// Configures the GrandID client to a simulated, in memory implementation for development and/or test purposes. /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IGrandIdAuthenticationBuilder UseSimulatedEnvironment(this IGrandIdAuthenticationBuilder builder) => UseSimulatedEnvironment(builder, x => new GrandIdSimulatedApiClient());
/// <summary> /// Configures the GrandID client to use the production endpoint of GrandID REST API. /// </summary> /// <param name="builder"></param> /// <param name="configuration">Configure GrandID.</param> /// <returns></returns> public static IGrandIdAuthenticationBuilder UseProductionEnvironment(this IGrandIdAuthenticationBuilder builder, Action <IGrandIdEnvironmentConfiguration> configuration) { return(builder.UseEnvironment(GrandIdUrls.ProductionApiBaseUrl, configuration)); }