ShwasherWebModule.cs 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. SetCacheExpireTime(Configuration);
  33. }
  34. public override void Initialize()
  35. {
  36. IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
  37. IocManager.IocContainer.Register(
  38. Component
  39. .For<IAuthenticationManager>()
  40. .UsingFactoryMethod(() => HttpContext.Current.GetOwinContext().Authentication)
  41. .LifestyleTransient()
  42. );
  43. AreaRegistration.RegisterAllAreas();
  44. RouteConfig.RegisterRoutes(RouteTable.Routes);
  45. BundleConfig.RegisterBundles(BundleTable.Bundles);
  46. }
  47. public override void PostInitialize()
  48. {
  49. GlobalFilters.Filters.Remove(IocManager.Resolve<AbpMvcAuthorizeFilter>());
  50. GlobalFilters.Filters.Add(IocManager.Resolve<IwbYueMvcAuthorizeFilter>());
  51. ReplaceScriptManager();
  52. }
  53. /// <summary>
  54. /// 设置缓存过期时间
  55. /// </summary>
  56. /// <param name="configuration"></param>
  57. private void SetCacheExpireTime(IAbpStartupConfiguration configuration)
  58. {
  59. //配置所有Cache的默认过期时间为2小时
  60. configuration.Caching.ConfigureAll(cache =>
  61. {
  62. cache.DefaultSlidingExpireTime = TimeSpan.FromHours(2);
  63. });
  64. //配置UserExpireTime Cache的过期时间
  65. configuration.Caching.Configure(ShwasherConsts.UserExpireTimeCache, cache =>
  66. {
  67. cache.DefaultSlidingExpireTime = TimeSpan.FromMinutes(int.Parse(
  68. System.Configuration.ConfigurationManager.AppSettings["AuthSession.ExpireTimeInMinutes"] ??
  69. "30"));
  70. });
  71. }
  72. public void ReplaceScriptManager()
  73. {
  74. IocManager.IocContainer.Register(
  75. Component.For<IAuthorizationScriptManager>().Named("IIwbAuthorizationScriptManager")
  76. .ImplementedBy<IwbAuthorizationScriptManager>().IsDefault());
  77. //IocManager.IocContainer.Register(
  78. // Component.For<IAbpWebLocalizationConfiguration>().Named("IWebLocalizationConfiguration")
  79. // .ImplementedBy<IwbWebLocalizationConfiguration>().IsDefault());
  80. //IocManager.Register<ILocalizationScriptManager, IwbLocalizationScriptManager>();
  81. //IocManager.Register<INavigationScriptManager, IwbNavigationScriptManager>();
  82. //IocManager.Register<ISettingScriptManager, IwbSettingScriptManager>();
  83. }
  84. }
  85. }