using FluentValidation; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; namespace zero.Identity; internal class ZeroIdentityModule : ZeroModule { public override void ConfigureServices(IServiceCollection services, IConfiguration configuration) { services.TryAddEnumerable(ServiceDescriptor.Singleton, PostConfigureCookieAuthenticationOptions>()); services.AddZeroIdentity(); services.Replace, ZeroBackofficeClaimsPrincipalFactory>(); services.Replace, RavenCoreUserStore>(ServiceLifetime.Scoped); services.AddScoped, BackofficeUserValidator>(); services.Replace, RavenCoreRoleStore>(ServiceLifetime.Scoped); services.AddSingleton(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddAuthentication(Constants.Auth.BackofficeScheme) .AddZeroBackofficeCookie(); services.AddAuthorization(); services.Configure(opts => { opts.Map("fth-user-check").Boost(5).Display((x, res) => { res.Description = x.Email; res.Url = "/settings/users/edit/" + x.Id; }); }); } }