using System; using Company.Project.Shared; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using ProductManagement; using Volo.Abp; using Volo.Abp.Autofac; using Volo.Abp.Http.Client.IdentityModel.Web; using Volo.Abp.Identity.Web; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.UI.Navigation; namespace Company.Project.PublicWebSite; [DependsOn( typeof(AbpAutofacModule), typeof(AbpHttpClientIdentityModelWebModule), typeof(AbpIdentityWebModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(ProductManagementHttpApiClientModule) )] public class PublicWebSiteHostModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); Configure(options => { options.Languages.Add(new LanguageInfo("en", "en", "English")); }); Configure(options => { options.IsEnabled = ProjectConsts.IsMultiTenancyEnabled; }); Configure(options => { options.MenuContributors.Add(new PublicWebSiteMenuContributor()); }); context.Services.AddAuthentication(options => { options.DefaultScheme = "Cookies"; options.DefaultChallengeScheme = "oidc"; }) .AddCookie("Cookies", options => { options.ExpireTimeSpan = TimeSpan.FromDays(365); }) .AddJwtBearer("oidc", options => { options.Authority = configuration["AuthServer:Authority"]; options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]); options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters { ValidateAudience = false }; }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); app.UseCorrelationId(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); if (ProjectConsts.IsMultiTenancyEnabled) { app.UseMultiTenancy(); } app.UseAbpRequestLocalization(); app.UseAuthorization(); app.UseConfiguredEndpoints(); } }