Beispiel #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddHttpContextAccessor();

            services.AddControllers()
            .AddXmlSerializerFormatters()
            .AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.WriteIndented    = false;
                options.JsonSerializerOptions.IgnoreNullValues = true;
                options.JsonSerializerOptions.Converters.Add(new ApiDateTimeConverter());
            });

            services.AddAuthentication("cookie")
            .AddScheme <AuthenticationSchemeOptions, CookieAuthHandler>("cookie", a => { })
            .AddScheme <AuthenticationSchemeOptions, ConfirmAuthHandler>("confirm", a => { });

            var builder = services.AddMvcCore(config =>
            {
                var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
                config.Filters.Add(new AuthorizeFilter(policy));
                config.Filters.Add(new TypeFilterAttribute(typeof(TenantStatusFilter)));
                config.Filters.Add(new TypeFilterAttribute(typeof(PaymentFilter)));
                config.Filters.Add(new TypeFilterAttribute(typeof(IpSecurityFilter)));
                config.Filters.Add(new TypeFilterAttribute(typeof(ProductSecurityFilter)));
                config.Filters.Add(new CustomResponseFilterAttribute());
                config.Filters.Add(new CustomExceptionFilterAttribute());
                config.Filters.Add(new TypeFilterAttribute(typeof(FormatFilter)));

                config.OutputFormatters.RemoveType <XmlSerializerOutputFormatter>();
                config.OutputFormatters.Add(new XmlOutputFormatter());
            });

            var diHelper = new DIHelper(services);

            diHelper
            .AddConfirmAuthHandler()
            .AddCookieAuthHandler()
            .AddCultureMiddleware()
            .AddIpSecurityFilter()
            .AddPaymentFilter()
            .AddProductSecurityFilter()
            .AddTenantStatusFilter();

            diHelper.AddNLogManager("ASC.Api", "ASC.Web");

            diHelper
            .AddAuthenticationController()
            .AddModulesController()
            .AddPortalController()
            .AddSettingsController()
            .AddSmtpSettingsController();

            services.AddAutofac(Configuration, HostEnvironment.ContentRootPath);
        }
Beispiel #2
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddHttpContextAccessor();

            services.AddControllers()
            .AddXmlSerializerFormatters()
            .AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.WriteIndented    = false;
                options.JsonSerializerOptions.IgnoreNullValues = true;
                options.JsonSerializerOptions.Converters.Add(new ApiDateTimeConverter());
            });

            services.AddAuthentication("cookie")
            .AddScheme <AuthenticationSchemeOptions, CookieAuthHandler>("cookie", a => { })
            .AddScheme <AuthenticationSchemeOptions, ConfirmAuthHandler>("confirm", a => { });

            var builder = services.AddMvcCore(config =>
            {
                var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
                config.Filters.Add(new AuthorizeFilter(policy));
                config.Filters.Add(new TypeFilterAttribute(typeof(TenantStatusFilter)));
                config.Filters.Add(new TypeFilterAttribute(typeof(PaymentFilter)));
                config.Filters.Add(new TypeFilterAttribute(typeof(IpSecurityFilter)));
                config.Filters.Add(new TypeFilterAttribute(typeof(ProductSecurityFilter)));
                config.Filters.Add(new CustomResponseFilterAttribute());
                config.Filters.Add(new CustomExceptionFilterAttribute());
                config.Filters.Add(new TypeFilterAttribute(typeof(FormatFilter)));

                config.OutputFormatters.RemoveType <XmlSerializerOutputFormatter>();
                config.OutputFormatters.Add(new XmlOutputFormatter());
            });

            var diHelper = new DIHelper(services);

            diHelper
            .AddConfirmAuthHandler()
            .AddCookieAuthHandler()
            .AddCultureMiddleware()
            .AddIpSecurityFilter()
            .AddPaymentFilter()
            .AddProductSecurityFilter()
            .AddTenantStatusFilter();

            diHelper.Configure <WorkerQueue <ResizeWorkerItem> >(r =>
            {
                r.workerCount     = 2;
                r.waitInterval    = (int)TimeSpan.FromSeconds(30).TotalMilliseconds;
                r.errorCount      = 1;
                r.stopAfterFinsih = true;
            });

            diHelper.Configure <ProgressQueue <ReassignProgressItem> >(r =>
            {
                r.workerCount          = 1;
                r.waitInterval         = (int)TimeSpan.FromMinutes(5).TotalMilliseconds;
                r.removeAfterCompleted = true;
                r.stopAfterFinsih      = false;
                r.errorCount           = 0;
            });

            diHelper.Configure <ProgressQueue <RemoveProgressItem> >(r =>
            {
                r.workerCount          = 1;
                r.waitInterval         = (int)TimeSpan.FromMinutes(5).TotalMilliseconds;
                r.removeAfterCompleted = true;
                r.stopAfterFinsih      = false;
                r.errorCount           = 0;
            });

            diHelper.AddNLogManager("ASC.Api", "ASC.Web");

            diHelper
            .AddPeopleController()
            .AddGroupController();

            services.AddAutofac(Configuration, HostEnvironment.ContentRootPath);
        }