VberAdminWebCoreModule.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using Abp.AspNetCore;
  2. using Abp.AspNetCore.Configuration;
  3. using Abp.AspNetCore.SignalR;
  4. using Abp.Modules;
  5. using Abp.Reflection.Extensions;
  6. using Microsoft.AspNetCore.Hosting;
  7. using Microsoft.AspNetCore.Mvc.ApplicationParts;
  8. using Microsoft.Extensions.Configuration;
  9. using Microsoft.IdentityModel.Tokens;
  10. using System.Text;
  11. using Abp.Configuration.Startup;
  12. using VberAdmin.Authentication.JwtBearer;
  13. using VberAdmin.Configuration;
  14. using VberZero;
  15. using VberZero.Folders;
  16. using VberZero.Jwt;
  17. using VberZero.Navigation;
  18. namespace VberAdmin;
  19. [DependsOn(
  20. typeof(VberAdminApplicationModule),
  21. typeof(VberAdminEfModule),
  22. typeof(AbpAspNetCoreModule)
  23. , typeof(AbpAspNetCoreSignalRModule)
  24. )]
  25. public class VberAdminWebCoreModule : AbpModule
  26. {
  27. //private readonly IWebHostEnvironment _env;
  28. private readonly IConfigurationRoot _appConfiguration;
  29. public VberAdminWebCoreModule(IWebHostEnvironment env)
  30. {
  31. //_env = env;
  32. _appConfiguration = env.GetAppConfiguration();
  33. }
  34. public override void PreInitialize()
  35. {
  36. Configuration.DefaultNameOrConnectionString = _appConfiguration.GetConnectionString(
  37. VberAdminConsts.ConnectionStringName
  38. );
  39. Configuration.Modules.AbpAspNetCore()
  40. .CreateControllersForAppServices(typeof(VberAdminApplicationModule).GetAssembly(), VzConsts.AppApiName, false);
  41. Configuration.Modules.AbpWebCommon().AntiForgery.TokenCookieName = "XSRF-TOKEN-VberAdmin";
  42. //Configuration.Modules.AbpWebCommon().AntiForgery.TokenHeaderName = "X-XSRF-TOKEN-VberAdmin";
  43. Configuration.Navigation.Providers.Add<VzNavigationProvider>();
  44. ConfigureTokenAuth();
  45. }
  46. private void ConfigureTokenAuth()
  47. {
  48. IocManager.Register<TokenAuthConfiguration>();
  49. var tokenAuthConfig = IocManager.Resolve<TokenAuthConfiguration>();
  50. tokenAuthConfig.SecurityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_appConfiguration["Authentication:JwtBearer:SecurityKey"]));
  51. tokenAuthConfig.Issuer = _appConfiguration["Authentication:JwtBearer:Issuer"];
  52. tokenAuthConfig.Audience = _appConfiguration["Authentication:JwtBearer:Audience"];
  53. tokenAuthConfig.SigningCredentials = new SigningCredentials(tokenAuthConfig.SecurityKey, SecurityAlgorithms.HmacSha256);
  54. tokenAuthConfig.Expiration = TimeSpan.FromDays(1);
  55. }
  56. public override void Initialize()
  57. {
  58. IocManager.RegisterAssemblyByConvention(typeof(VberAdminWebCoreModule).GetAssembly());
  59. }
  60. public override void PostInitialize()
  61. {
  62. SetAppFolders();
  63. IocManager.Resolve<ApplicationPartManager>()
  64. .AddApplicationPartsIfNotAddedBefore(typeof(VberAdminWebCoreModule).Assembly);
  65. }
  66. private void SetAppFolders()
  67. {
  68. var appFolders = IocManager.Resolve<AppFolders>();
  69. appFolders.ProfileImagesFolder = $"Common{Path.DirectorySeparatorChar}Images{Path.DirectorySeparatorChar}AvatarPics";
  70. appFolders.DownloadFolder = $"Common{Path.DirectorySeparatorChar}Download{Path.DirectorySeparatorChar}AttachFiles";
  71. appFolders.UploadFolder = $"Common{Path.DirectorySeparatorChar}Upload{Path.DirectorySeparatorChar}AttachFiles";
  72. }
  73. }