Program.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
  2. using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using System;
  6. using System.Net.Http;
  7. using System.Threading.Tasks;
  8. namespace Blazor.App.Web
  9. {
  10. public class Program
  11. {
  12. /// <summary>
  13. ///
  14. /// </summary>
  15. /// <param name="args"></param>
  16. /// <returns></returns>
  17. public static async Task Main(string[] args)
  18. {
  19. var builder = WebAssemblyHostBuilder.CreateDefault(args);
  20. builder.RootComponents.Add<App>("app");
  21. //builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri("http://localhost:55389") });
  22. builder.Services.AddHttpClient("companiesAPI", cl =>
  23. {
  24. cl.BaseAddress = new Uri("http://localhost:55389");
  25. })
  26. .AddHttpMessageHandler(sp =>
  27. {
  28. var handler = sp.GetService<AuthorizationMessageHandler>()
  29. .ConfigureHandler(
  30. authorizedUrls: new[] { "http://localhost:55389" },
  31. scopes: new[] { "BaseService" }
  32. );
  33. return handler;
  34. });
  35. builder.Services.AddScoped(
  36. sp => sp.GetService<IHttpClientFactory>().CreateClient("companiesAPI"));
  37. // Ôö¼Ó BootstrapBlazor ×é¼þ
  38. builder.Services.AddBootstrapBlazor();
  39. builder.Services.AddOidcAuthentication(options =>
  40. {
  41. builder.Configuration.Bind("AuthServer", options.ProviderOptions);
  42. options.ProviderOptions.DefaultScopes.Add("role");
  43. options.ProviderOptions.DefaultScopes.Add("email");
  44. options.ProviderOptions.DefaultScopes.Add("phone");
  45. });
  46. var host = builder.Build();
  47. await host.RunAsync();
  48. }
  49. }
  50. }