diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.IdentityServer/IdentityServerDataSeeder.cs b/templates/mvc/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeeder.cs similarity index 97% rename from templates/mvc/src/MyCompanyName.MyProjectName.IdentityServer/IdentityServerDataSeeder.cs rename to templates/mvc/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeeder.cs index 81e4a15c2c..b5c113c0c1 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.IdentityServer/IdentityServerDataSeeder.cs +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeeder.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; using Volo.Abp.Authorization.Permissions; using Volo.Abp.Data; @@ -11,7 +10,7 @@ using Volo.Abp.IdentityServer.IdentityResources; using Volo.Abp.PermissionManagement; using Volo.Abp.Uow; -namespace MyCompanyName.MyProjectName +namespace MyCompanyName.MyProjectName.IdentityServer { public class IdentityServerDataSeeder : IDataSeedContributor, ITransientDependency { @@ -99,6 +98,8 @@ namespace MyCompanyName.MyProjectName "MyProjectName" }; + /* MyProjectName_Web client is only needed if you created tiered + * solution. Otherwise, delete this client. */ await CreateClientAsync( "MyProjectName_Web", commonScopes, diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index e206d80443..739b4a7b44 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -29,6 +29,7 @@ using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.PermissionManagement.Web; using Volo.Abp.TenantManagement.Web; +using Volo.Abp.Ui.Navigation.Urls; using Volo.Abp.UI; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; @@ -67,6 +68,7 @@ namespace MyCompanyName.MyProjectName var hostingEnvironment = context.Services.GetHostingEnvironment(); var configuration = context.Services.GetConfiguration(); + ConfigureUrls(configuration); ConfigureAuthentication(context); ConfigureAutoMapper(); ConfigureVirtualFileSystem(hostingEnvironment); @@ -75,6 +77,14 @@ namespace MyCompanyName.MyProjectName ConfigureMultiTenancy(); } + private void ConfigureUrls(IConfigurationRoot configuration) + { + Configure(options => + { + options.Applications["MVC"].RootUrl = configuration["AppSelfUrl"]; + }); + } + private void ConfigureMultiTenancy() { Configure(options => { options.IsEnabled = MultiTenancyConsts.IsMultiTenancyEnabled; }); diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json b/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json index 703528c801..c53419cc49 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json @@ -1,10 +1,8 @@ { + "AppSelfUrl": "https://localhost:44314", "RemoteServices": { "Default": { "BaseUrl": "https://localhost:44395/" - }, - "AbpMvcClient": { - "BaseUrl": "https://localhost:44395/" } }, "Redis": { diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 6da83db968..f0dfcbb41b 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -20,6 +20,7 @@ + @@ -28,8 +29,9 @@ + - + diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index 5d61e25bf0..d171011f2c 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -7,6 +7,7 @@ using MyCompanyName.MyProjectName.Localization.MyProjectName; using MyCompanyName.MyProjectName.Menus; using Swashbuckle.AspNetCore.Swagger; using System.IO; +using Microsoft.Extensions.Configuration; using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp; using Volo.Abp.Account.Web; @@ -23,6 +24,7 @@ using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.Web; using Volo.Abp.TenantManagement.Web; +using Volo.Abp.Ui.Navigation.Urls; using Volo.Abp.UI; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; @@ -35,7 +37,7 @@ namespace MyCompanyName.MyProjectName typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpAutofacModule), typeof(AbpIdentityWebModule), - typeof(AbpAccountWebModule), + typeof(AbpAccountWebIdentityServerModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpTenantManagementWebModule) )] @@ -60,7 +62,9 @@ namespace MyCompanyName.MyProjectName { var hostingEnvironment = context.Services.GetHostingEnvironment(); var configuration = context.Services.GetConfiguration(); - + + ConfigureUrls(configuration); + ConfigureAuthentication(context, configuration); ConfigureAutoMapper(); ConfigureVirtualFileSystem(hostingEnvironment); ConfigureLocalizationServices(); @@ -69,6 +73,25 @@ namespace MyCompanyName.MyProjectName ConfigureSwaggerServices(context.Services); } + private void ConfigureUrls(IConfigurationRoot configuration) + { + Configure(options => + { + options.Applications["MVC"].RootUrl = configuration["AppSelfUrl"]; + }); + } + + private void ConfigureAuthentication(ServiceConfigurationContext context, IConfigurationRoot configuration) + { + context.Services.AddAuthentication() + .AddIdentityServerAuthentication(options => + { + options.Authority = configuration["AuthServer:Authority"]; + options.RequireHttpsMetadata = false; + options.ApiName = "MyProjectName"; + }); + } + private void ConfigureAutoMapper() { Configure(options => @@ -164,12 +187,15 @@ namespace MyCompanyName.MyProjectName app.UseVirtualFiles(); app.UseAuthentication(); + app.UseJwtTokenMiddleware(); if (MultiTenancyConsts.IsMultiTenancyEnabled) { app.UseMultiTenancy(); } + app.UseIdentityServer(); + app.UseAbpRequestLocalization(); app.UseSwagger(); diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.Web/appsettings.json b/templates/mvc/src/MyCompanyName.MyProjectName.Web/appsettings.json index bff17dbf42..e8ff5924ce 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.Web/appsettings.json +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Web/appsettings.json @@ -1,5 +1,9 @@ { + "AppSelfUrl": "https://localhost:44361", "ConnectionStrings": { "Default": "Server=localhost;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true" + }, + "AuthServer": { + "Authority": "https://localhost:44361" } } \ No newline at end of file