WePlatformWebModule.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using System.Reflection;
  2. using System.Web;
  3. using System.Web.Mvc;
  4. using System.Web.Optimization;
  5. using System.Web.Routing;
  6. using Abp.Configuration.Startup;
  7. using Abp.Localization.Sources;
  8. using Abp.Modules;
  9. using Abp.Web.Configuration;
  10. using Abp.Web.Mvc;
  11. using Abp.Web.Mvc.Security.AntiForgery;
  12. using Abp.Web.Security.AntiForgery;
  13. using Abp.Web.SignalR;
  14. using Castle.MicroKernel.Registration;
  15. using IwbZero;
  16. using Microsoft.Owin.Security;
  17. using WePlatform.Api;
  18. using WePlatform.Configuration;
  19. using WePlatform.Localization;
  20. namespace WePlatform
  21. {
  22. [DependsOn(
  23. typeof(WePlatformDataModule),
  24. typeof(WePlatformApplicationModule),
  25. typeof(WePlatformWebApiModule),
  26. typeof(AbpWebSignalRModule),
  27. //typeof(AbpHangfireModule), - ENABLE TO USE HANGFIRE INSTEAD OF DEFAULT JOB MANAGER
  28. typeof(AbpWebMvcModule))]
  29. public class WePlatformWebModule : AbpModule
  30. {
  31. public override void PreInitialize()
  32. {
  33. //Configure navigation/menu
  34. Configuration.Navigation.Providers.Add<WePlatformNavigationProvider>();
  35. //Configure Hangfire - ENABLE TO USE HANGFIRE INSTEAD OF DEFAULT JOB MANAGER
  36. //Configuration.BackgroundJobs.UseHangfire(configuration =>
  37. //{
  38. // configuration.GlobalConfiguration.UseSqlServerStorage("Default");
  39. //});
  40. Configuration.Modules.AbpWeb().AntiForgery.IsEnabled = false;
  41. Configuration.Modules.AbpWebCommon().AntiForgery.TokenCookieName = "XSRF-TOKEN-WePlatform";
  42. Configuration.Modules.AbpWebCommon().AntiForgery.TokenHeaderName = "X-XSRF-TOKEN-WePlatform";
  43. Configuration.Modules.AbpWebCommon().AntiForgery.AuthorizationCookieName = $".AspNet.{IwbAuthenticationTypes.ApplicationCookie}";
  44. //扩展本地化语言
  45. string path = HttpContext.Current.Server.MapPath("~/Localization/SourceFiles");
  46. Configuration.Localization.Sources.Extensions.Add(new LocalizationSourceExtensionInfo(
  47. IwbZeroConsts.LocalizationSourceName, new IwbXmlFileLocalizationDictionaryProvider(path)));
  48. //IocManager.IocContainer.Register(
  49. // Component.For<IAbpAntiForgeryConfiguration>().Named("IwbAntiForgeryConfiguration")
  50. // .ImplementedBy<IwbAntiForgeryConfiguration>().IsDefault());
  51. //Configuration.ReplaceService<IAbpAntiForgeryManager, IwbMvcAntiForgeryManager>();
  52. }
  53. public override void Initialize()
  54. {
  55. IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
  56. IocManager.IocContainer.Register(
  57. Component
  58. .For<IAuthenticationManager>()
  59. .UsingFactoryMethod(() => HttpContext.Current.GetOwinContext().Authentication)
  60. .LifestyleTransient()
  61. );
  62. AreaRegistration.RegisterAllAreas();
  63. RouteConfig.RegisterRoutes(RouteTable.Routes);
  64. BundleConfig.RegisterBundles(BundleTable.Bundles);
  65. }
  66. public override void PostInitialize()
  67. {
  68. //GlobalFilters.Filters.Remove(IocManager.Resolve<AbpMvcAuthorizeFilter>());
  69. //GlobalFilters.Filters.Add(IocManager.Resolve<WePlatformMvcAuthorizeFilter>());
  70. ReplaceScriptManager();
  71. }
  72. public void ReplaceScriptManager()
  73. {
  74. IocManager.IocContainer.Register(
  75. Component.For<IAbpWebLocalizationConfiguration>().Named("IWebLocalizationConfiguration")
  76. .ImplementedBy<IwbWebLocalizationConfiguration>().IsDefault());
  77. //IocManager.Register<ILocalizationScriptManager, IwbLocalizationScriptManager>();
  78. //IocManager.Register<INavigationScriptManager, IwbNavigationScriptManager>();
  79. //IocManager.Register<ISettingScriptManager, IwbSettingScriptManager>();
  80. }
  81. public class IwbAntiForgeryConfiguration : AbpAntiForgeryConfiguration
  82. {
  83. public IwbAntiForgeryConfiguration() : base()
  84. {
  85. TokenCookieName = "XSRF-TOKEN-WePlatform";
  86. }
  87. }
  88. public class IwbMvcAntiForgeryManager : AbpMvcAntiForgeryManager
  89. {
  90. public IwbMvcAntiForgeryManager() : base(new IwbAntiForgeryConfiguration())
  91. {
  92. }
  93. }
  94. }
  95. }