ShwasherWebModule.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using System.Reflection;
  3. using System.Web;
  4. using System.Web.Http;
  5. using System.Web.Mvc;
  6. using System.Web.Optimization;
  7. using System.Web.Routing;
  8. using Abp.Configuration.Startup;
  9. using Abp.Modules;
  10. using Abp.Web.Authorization;
  11. using Abp.Web.Mvc;
  12. using Abp.Web.Mvc.Authorization;
  13. using Castle.MicroKernel.Registration;
  14. using Microsoft.Owin.Security;
  15. using ShwasherSys.ScriptManager;
  16. //<%@ Application Codebehind="Global.asax.cs" Inherits="IwbYue.MvcApplication" Language="C#" %>
  17. namespace ShwasherSys
  18. {
  19. [DependsOn(
  20. typeof(ShwasherDataModule),
  21. typeof(AbpWebMvcModule),
  22. typeof(ShwasherApplicationModule),
  23. typeof(IwbYueWebApiModule))]
  24. public class ShwasherWebModule : AbpModule
  25. {
  26. public override void PreInitialize()
  27. {
  28. //GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver =
  29. // new BigCamelCasePropertyNamesContractResolver();
  30. GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
  31. //Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
  32. //Configuration.Modules.AbpWeb().AntiForgery.IsEnabled = false;
  33. SetCacheExpireTime(Configuration);
  34. }
  35. public override void Initialize()
  36. {
  37. IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
  38. IocManager.IocContainer.Register(
  39. Component
  40. .For<IAuthenticationManager>()
  41. .UsingFactoryMethod(() => HttpContext.Current.GetOwinContext().Authentication)
  42. .LifestyleTransient()
  43. );
  44. AreaRegistration.RegisterAllAreas();
  45. RouteConfig.RegisterRoutes(RouteTable.Routes);
  46. BundleConfig.RegisterBundles(BundleTable.Bundles);
  47. }
  48. public override void PostInitialize()
  49. {
  50. GlobalFilters.Filters.Remove(IocManager.Resolve<AbpMvcAuthorizeFilter>());
  51. GlobalFilters.Filters.Add(IocManager.Resolve<IwbYueMvcAuthorizeFilter>());
  52. ReplaceScriptManager();
  53. }
  54. /// <summary>
  55. /// 设置缓存过期时间
  56. /// </summary>
  57. /// <param name="configuration"></param>
  58. private void SetCacheExpireTime(IAbpStartupConfiguration configuration)
  59. {
  60. //配置所有Cache的默认过期时间为2小时
  61. configuration.Caching.ConfigureAll(cache =>
  62. {
  63. cache.DefaultSlidingExpireTime = TimeSpan.FromHours(2);
  64. });
  65. //配置UserExpireTime Cache的过期时间
  66. configuration.Caching.Configure(ShwasherConsts.UserExpireTimeCache, cache =>
  67. {
  68. cache.DefaultSlidingExpireTime = TimeSpan.FromMinutes(int.Parse(
  69. System.Configuration.ConfigurationManager.AppSettings["AuthSession.ExpireTimeInMinutes"] ??
  70. "30"));
  71. });
  72. }
  73. public void ReplaceScriptManager()
  74. {
  75. IocManager.IocContainer.Register(
  76. Component.For<IAuthorizationScriptManager>().Named("IIwbAuthorizationScriptManager")
  77. .ImplementedBy<IwbAuthorizationScriptManager>().IsDefault());
  78. //IocManager.IocContainer.Register(
  79. // Component.For<IAbpWebLocalizationConfiguration>().Named("IWebLocalizationConfiguration")
  80. // .ImplementedBy<IwbWebLocalizationConfiguration>().IsDefault());
  81. //IocManager.Register<ILocalizationScriptManager, IwbLocalizationScriptManager>();
  82. //IocManager.Register<INavigationScriptManager, IwbNavigationScriptManager>();
  83. //IocManager.Register<ISettingScriptManager, IwbSettingScriptManager>();
  84. }
  85. }
  86. }