/// <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),
            });
        }
Esempio n. 2
0
        /// <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);
            });
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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)));
            });
        }
Esempio n. 6
0
        /// <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());
            });
        }
Esempio n. 7
0
 /// <summary>
 /// Initialize value injecter class mappers.
 /// </summary>
 public void ConfigureMappers(WebUIConfigs uiConfigs, IAppBuilder appBuilder, Container container)
 {
     MappersInitializer.ConfigurePlatformCommonMappers(container);
 }