diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj
index 90233d3dd8..d3fec280ba 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj
@@ -10,7 +10,16 @@
-
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs
new file mode 100644
index 0000000000..8d4e92449f
--- /dev/null
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Net.Http;
+using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Autofac;
+using Volo.Abp.Http.Client.IdentityModel;
+using Volo.Abp.Modularity;
+
+namespace MyCompanyName.MyProjectName.Blazor
+{
+ [DependsOn(
+ typeof(AbpAutofacModule),
+ typeof(MyProjectNameHttpApiClientModule),
+ typeof(AbpHttpClientIdentityModelModule)
+ )]
+ public class MyProjectNameBlazorModule : AbpModule
+ {
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ var environment = context.Services.GetSingletonInstance();
+ var builder = context.Services.GetSingletonInstance();
+
+ ConfigureAuthentication(builder);
+ ConfigureHttpClient(context, environment);
+ ConfigureUI(builder);
+ }
+
+ private static void ConfigureAuthentication(WebAssemblyHostBuilder builder)
+ {
+ builder.Services.AddOidcAuthentication(options =>
+ {
+ builder.Configuration.Bind("AuthServer", options.ProviderOptions);
+ });
+ }
+
+ private static void ConfigureUI(WebAssemblyHostBuilder builder)
+ {
+ builder.RootComponents.Add("app");
+ }
+
+ private static void ConfigureHttpClient(ServiceConfigurationContext context, IWebAssemblyHostEnvironment environment)
+ {
+ context.Services.AddTransient(sp => new HttpClient
+ {
+ BaseAddress = new Uri(environment.BaseAddress)
+ });
+ }
+ }
+}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor
index 2ce028003e..000ee6f7f6 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor
@@ -1,4 +1,6 @@
@page "/"
+@using Volo.Abp.Identity
+@inject IProfileAppService ProfileAppService
Hello, world!
@@ -8,4 +10,17 @@
Welcome to your new app.
-
+Remote Service Test
+
+Current user name: @_userName
+
+
+@code
+{
+ private string _userName = "?";
+
+ private async Task GetUserNameAsync()
+ {
+ _userName = (await ProfileAppService.GetAsync()).UserName;
+ }
+}
\ No newline at end of file
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs
index 19c93e6edd..d536321f9a 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs
@@ -1,9 +1,9 @@
-using System;
-using System.Net.Http;
using System.Threading.Tasks;
+using Autofac;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
namespace MyCompanyName.MyProjectName.Blazor
{
@@ -12,15 +12,18 @@ namespace MyCompanyName.MyProjectName.Blazor
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
- builder.RootComponents.Add("app");
- builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
+ //TODO: Should be done in the ABP framework!
+ builder.Services.AddSingleton(builder.Configuration);
+ builder.Services.AddSingleton(builder);
- builder.Services.AddOidcAuthentication(options =>
+ builder.Services.AddApplication(opts =>
{
- builder.Configuration.Bind("AuthServer", options.ProviderOptions);
+ opts.UseAutofac();
});
+ builder.ConfigureContainer(builder.Services.GetSingletonInstance>());
+
await builder.Build().RunAsync();
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.json
index 397d3fa059..af7cddcc72 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.json
@@ -3,5 +3,10 @@
"Authority": "https://localhost:44305",
"ClientId": "MyProjectName_Blazor",
"ResponseType": "code"
- }
+ },
+ "RemoteServices": {
+ "Default": {
+ "BaseUrl": "https://localhost:44305"
+ }
+ }
}