/// <summary> /// Initialize oauth identity. /// </summary> private void ConfigureOwinAuthentication(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container) { // HttpListener listener = (HttpListener)app.Properties["System.Net.HttpListener"]; // listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication; appBuilder.UseCookieAuthentication(new CookieAuthenticationOptions { CookieName = uiConfigs.Auth.CookieName, //LoginPath = new PathString(uiConfigs.Auth.LoginPath), AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <DotUserManager, DotUser, int>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentityCallback: (manager, user) => { manager.Realm = Realm.BG; return(user.GenerateUserIdentityAsync(manager)); }, getUserIdCallback: (user) => user.GetUserId <int>() ) }, SlidingExpiration = true, ExpireTimeSpan = TimeSpan.FromDays(180), }); }
/// <summary> /// Initialize validator. /// </summary> public void ConfigureValidators(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container) { // Set fluent validation error message resources type. ValidatorOptions.ResourceProviderType = typeof(FluentValidationResources); // Set custom factory for MVC validators. FluentValidationModelValidatorProvider.Configure(config => { config.ValidatorFactory = new SimpleInjectorValidatorFactory(container); }); }
/// <summary> /// Initialize image resizer tools (Enabled image resirer module to use the currently active IImageService). /// <para>http://imageresizing.net/docs/v4/extend/basics</para> /// </summary> public void ConfigureDynamicImageProcessors(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container) { var plugin = container.GetInstance <VirtualFileProviderPlugin>(); if (plugin == null) { throw new ArgumentException(nameof(Initializer), new ArgumentNullException(nameof(plugin))); } plugin.Install(ImageResizer.Configuration.Config.Current); }
/// <summary> /// Initialize script and css bundles. /// </summary> public void ConfigureBundles(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container) { // Set to true/false to force minification state (otherwise, it will be managed by debug/release configurations) // BundleTable.EnableOptimizations = true; // Let files be rendered just like they are defined. BundleTable.Bundles.FileSetOrderList.Clear(); var bundles = container.GetAllInstances <Bundle>(); foreach (var bundle in bundles) { BundleTable.Bundles.Add(bundle); } }
/// <summary> /// Initialize can configure main container types. /// </summary> private void ConfigureContainerAndRegisterTypes(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container, IEnumerable <Assembly> assemblies) { container.Options.DefaultLifestyle = new WebRequestLifestyle(); container.Options.DefaultScopedLifestyle = new WebRequestLifestyle(); container.Options.PropertySelectionBehavior = new ImportPropertySelectionBehavior(); // Register all web platform commont types DependencyInjectionInitializer.RegisterWebPlatformCommonTypes(uiConfigs, appBuilder, container, assemblies); // Register all optimization bundles container.RegisterCollection <Bundle>(assemblies); // MVC IFilterProvider attributes container.RegisterMvcIntegratedFilterProvider(); // MVC controllers container.RegisterMvcControllers(); // OAuth user sign in manager container.Register <DotUserSignInManager>(); // IAuthenticationManager container.Register(() => { // If testing (container.Verify()) or no context available, return a dummy instance if (AdvancedExtensions.IsVerifying(container) || HttpContext.Current == null) { return(new OwinContext().Authentication); } // Otherwise return current authentication manager instance return(HttpContext.Current.GetOwinContext().Authentication); }); // IWebContext container.Register <IWebContext>(() => { // If testing (container.Verify()) or no context available, return a dummy instance if (AdvancedExtensions.IsVerifying(container) || HttpContext.Current == null) { return(new WebUIContext()); } // Otherwise return current user web context. return(new WebUIContext(new CorePrincipal(HttpContext.Current.User))); }); }
/// <summary> /// Initialize NLog system. /// </summary> public void ConfigureLogger(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container) { // Context realm LayoutRenderer.Register("realm", (logEvent) => Realm.BG.GetDisplayName()); // Context user id LayoutRenderer.Register("userId", (logEvent) => { var context = container.GetInstance <IWebContext>(); if (context == null || context.User.Id <= 0) { return("Anonymous"); } return(context.User.Id.ToString()); }); }
/// <summary> /// Initialize value injecter class mappers. /// </summary> public void ConfigureMappers(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container) { MappersInitializer.ConfigurePlatformCommonMappers(container); }