using HopFrame.Security.Authorization; using HopFrame.Security.Claims; using HopFrame.Security.Options; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; namespace HopFrame.Security.Authentication; public static class HopFrameAuthenticationExtensions { /// /// Configures the WebApplication to use the authentication and authorization of the HopFrame API /// /// The service provider to add the services to /// The configuration used to configure HopFrame authentication /// public static IServiceCollection AddHopFrameAuthentication(this IServiceCollection service, ConfigurationManager configuration) { service.TryAddSingleton(); service.AddScoped(); service.AddOptionsFromConfiguration(configuration); service.AddOptionsFromConfiguration(configuration); service.AddAuthentication(HopFrameAuthentication.SchemeName).AddScheme(HopFrameAuthentication.SchemeName, _ => {}); service.AddAuthorization(); return service; } }