using Easy.Options; using IdentityServer.EF; using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; namespace IdentityServer.Realization; public static class CustomExtension { public static void AddCustomIdentityServer(this WebApplicationBuilder builder) { var identityServerBuilder = builder.Services.AddIdentityServer(options => { options.UserInteraction.LoginUrl = "/login"; options.UserInteraction.ConsentUrl = "/consent"; options.UserInteraction.LogoutUrl = "/logout"; options.UserInteraction.ErrorUrl = "/error"; options.Events.RaiseErrorEvents = true; options.Events.RaiseInformationEvents = true; options.Events.RaiseFailureEvents = true; options.Events.RaiseSuccessEvents = true; // see https://docs.duendesoftware.com/identityserver/v5/fundamentals/resources/ options.EmitStaticAudienceClaim = true; }); identityServerBuilder.AddInMemoryIdentityResources(SimpleConfig.IdentityResources); identityServerBuilder.AddInMemoryApiScopes(SimpleConfig.ApiScopes); identityServerBuilder.AddInMemoryClients(SimpleConfig.Clients); identityServerBuilder.AddProfileService(); } //public static void AddCustomAuthentication(this WebApplicationBuilder builder) //{ // builder.Services.AddAuthentication("Bearer") // .AddJwtBearer("Bearer", options => // { // options.Authority = ""; // options.TokenValidationParameters = new TokenValidationParameters // { // ValidateAudience = false // }; // }); //} public static void AddCustomDbContext(this WebApplicationBuilder builder) { var sqlConnectionString = builder.Configuration["ConnectionString"]; builder.Services.AddDbContext(optionsBuilder => { if (!string.IsNullOrEmpty(sqlConnectionString)) { optionsBuilder.UseMySql(sqlConnectionString, ServerVersion.Parse("8.0.28-mysql")); } }); builder.Services.AddTransient(); builder.Services.Configure(options => { options.SequentialGuidType = Easy.Enums.SequentialGuidType.SequentialAsString; }); } }