Ejemplo n.º 1
0
        public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
        {
            var appSettings = services.BuildServiceProvider().GetService <IOptions <AppSettings> >().Value;

            services.AddCors(options =>
            {
                options.AddPolicy("AllRequests", policy =>
                {
                    policy
                    .SetIsOriginAllowed(_ => true) //验证传入的 origin 源,如果验证通过则返回 true
                    .AllowAnyMethod()              //允许任何方式
                    .AllowAnyHeader()              //允许任何头

                    .AllowCredentials();           //允许cookie
                });

                //一般采用这种方法
                options.AddPolicy("LimitRequests", policy =>
                {
                    policy
                    .WithOrigins(appSettings.Cors.Ips.ToArray()) //支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的
                    .AllowAnyHeader()                            //Ensures that the policy allows any header.
                    .AllowAnyMethod();
                });
            });
        }
    /// <summary>
    /// Configures startup modules with the specified configuration for <see cref="StartupModulesOptions"/>.
    /// </summary>
    /// <param name="services">The service collection to add the StartupModules services to.</param>
    /// <param name="configuration">The application's configuration.</param>
    /// <param name="environment">The application's environment information.</param>
    /// <param name="configure">A callback to configure <see cref="StartupModulesOptions"/>.</param>
    public static void AddStartupModules(this IServiceCollection services, IConfiguration configuration, IWebHostEnvironment environment, Action <StartupModulesOptions> configure)
    {
        if (services == null)
        {
            throw new ArgumentNullException(nameof(services));
        }
        if (configuration == null)
        {
            throw new ArgumentNullException(nameof(configuration));
        }
        if (environment == null)
        {
            throw new ArgumentNullException(nameof(environment));
        }

        var options = new StartupModulesOptions();

        configure(options);

        if (options.StartupModules.Count == 0 && options.ApplicationInitializers.Count == 0)
        {
            // Nothing to do here
            return;
        }

        var runner = new StartupModuleRunner(options);

        services.AddSingleton <IStartupFilter>(sp => ActivatorUtilities.CreateInstance <ModulesStartupFilter>(sp, runner));

        var configureServicesContext = new ConfigureServicesContext(configuration, environment, options);

        runner.ConfigureServices(services, configuration, environment);
    }
Ejemplo n.º 3
0
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.AddSingleton(sp => sp.GetService <ISchedulerFactory>().GetScheduler().Result);
     context.Services.AddHostedService <QuartzService>();
     context.Services.RegisterAssemblyByConvention();
     base.ConfigureServices(context);
 }
Ejemplo n.º 4
0
 public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
 {
     services.AddTransient <InvoicesCreateManager>();
     services.AddTransient <InvoicesSearchAllManager>();
     services.AddTransient <InvoicesSearchByIdManager>();
     services.AddTransient <InvoicesDeleteManager>();
 }
Ejemplo n.º 5
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var service = context.Services;

#if DEBUG
            service.AddRazorPages().AddRazorRuntimeCompilation();//判断是否是开发环境
#else
            service.AddMvc();
#endif
            context.Services.AddTransient <IPrincipal>(provider =>
            {
                IHttpContextAccessor accessor = provider.GetService <IHttpContextAccessor>();
                return(accessor?.HttpContext?.User);
            });
            var basePath = Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath; //获取项目路径
            context.Services.AddSingleton <IFileProvider>(new PhysicalFileProvider(basePath));
            var configuration = service.GetConfiguration();
            service.Configure <AppOptionSettings>(configuration.GetSection("SuktCore"));
            var settings = service.GetAppSettings();
            if (!settings.Cors.PolicyName.IsNullOrEmpty() && !settings.Cors.Url.IsNullOrEmpty()) //添加跨域
            {
                _corePolicyName = settings.Cors.PolicyName;
                service.AddCors(c =>
                {
                    c.AddPolicy(settings.Cors.PolicyName, policy =>
                    {
                        policy.WithOrigins(settings.Cors.Url
                                           .Split(",", StringSplitOptions.RemoveEmptyEntries).ToArray())
                        //policy.WithOrigins("http://localhost:5001")//支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的
                        .AllowAnyHeader().AllowAnyMethod().AllowCredentials();//允许cookie;
                    });
                });
            }
        }
 public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
 {
     Assert.NotNull(services);
     Assert.NotNull(context);
     Assert.NotNull(context.Configuration);
     Assert.NotNull(context.HostingEnvironment);
 }
Ejemplo n.º 7
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var service = context.Services;

            service.AddMvc();
            var configuration = service.GetConfiguration();

            service.Configure <AppOptionSettings>(configuration.GetSection("SuktCore"));
            var settings = service.GetAppSettings();

            if (!settings.Cors.PolicyName.IsNullOrEmpty() && !settings.Cors.Url.IsNullOrEmpty()) //添加跨域
            {
                _corePolicyName = settings.Cors.PolicyName;
                service.AddCors(c =>
                {
                    c.AddPolicy(settings.Cors.PolicyName, policy =>
                    {
                        policy.WithOrigins(settings.Cors.Url
                                           .Split(",", StringSplitOptions.RemoveEmptyEntries).ToArray())
                        //policy.WithOrigins("http://localhost:5001")//支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的
                        .AllowAnyHeader().AllowAnyMethod().AllowCredentials();//允许cookie;
                    });
                });
            }
            //context.Services.AddTransient<IPrincipal>(provider =>
            //{
            //    IHttpContextAccessor accessor = provider.GetService<IHttpContextAccessor>();
            //    return accessor?.HttpContext?.User;
            //});
        }
Ejemplo n.º 8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="context"></param>
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.AddOptions <UnitOfWorkDefaultOptions>();
     context.Services.TryAddTransient <UnitOfWorkInterceptor>();
     context.Services.TryAddTransient <IUnitOfWork, NullUnitOfWork>();
     context.Services.RegisterAssemblyByConventionOfType <UnitOfWorkModule>();
 }
Ejemplo n.º 9
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var service = context.Services;

            service.AddControllers(x => {
                x.SuppressAsyncSuffixInActionNames = false;
                x.Filters.Add <PermissionAuthorizationFilter>();
                x.Filters.Add <AuditLogFilter>();
            }).AddNewtonsoftJson(options => {
                //options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
                options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
            });
            var configuration = service.GetConfiguration();

            service.Configure <AppOptionSettings>(configuration.GetSection("SuktCore"));
            var settings = service.GetAppSettings();

            if (!settings.Cors.PolicyName.IsNullOrEmpty() && !settings.Cors.Url.IsNullOrEmpty()) //添加跨域
            {
                _corePolicyName = settings.Cors.PolicyName;
                service.AddCors(c =>
                {
                    c.AddPolicy(settings.Cors.PolicyName, policy =>
                    {
                        policy.WithOrigins(settings.Cors.Url
                                           .Split(",", StringSplitOptions.RemoveEmptyEntries).ToArray())
                        //policy.WithOrigins("http://localhost:5001")//支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的
                        .AllowAnyHeader().AllowAnyMethod().AllowCredentials();//允许cookie;
                    });
                });
            }
        }
Ejemplo n.º 10
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            context.Services.AddTransient(typeof(Lazy <>), typeof(LazyFactory <>));
            var services = context.Services;

            AddAutoInjection(services);
        }
Ejemplo n.º 11
0
        public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
        {
            var appSettings = services.BuildServiceProvider().GetService <IOptions <AppSettings> >().Value;

            services.AddScoped <ISqlSugarClient>(_ =>
            {
                var sqlSugarClient = new SqlSugarClient(new ConnectionConfig()
                {
                    ConnectionString      = appSettings?.SqlServer?.SqlServerConnection,
                    DbType                = DbType.SqlServer,
                    IsAutoCloseConnection = true,
                    IsShardSameThread     = false,
                    MoreSettings          = new ConnMoreSettings()
                    {
                        IsAutoRemoveDataCache = true
                    },
                    InitKeyType = InitKeyType.Attribute,
                    AopEvents   = new AopEvents
                    {
                        OnLogExecuting = (sql, pars) =>
                        {
                            if (true)
                            {
                                Log.Information($"【参数】:{JsonConvert.SerializeObject(pars)},【SQL语句】:{sql}");
                            }
                        }
                    }
                });
                return(sqlSugarClient);
            });
        }
Ejemplo n.º 12
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var service    = context.Services;
            var typefinder = service.GetService <ITypeFinder>();

            typefinder.NotNull(nameof(typefinder));
            var typs = typefinder.Find(o => o.IsClass && !o.IsAbstract && !o.IsInterface && o.IsSubclassOf(typeof(AbstractInterceptor)));
            var interceptorsModule = service.GetConfiguration()["Destiny:InterceptorsModule"];


            if (typs?.Length > 0)
            {
                List <Type> types = new List <Type>();

                foreach (var item in typs)
                {
                    //service.AddTransient(item);
                    service.ConfigureDynamicProxy(cof =>
                    {
                        var enabled = service.GetConfiguration()[$"Destiny:AopManager:{item.Name}:Enabled"].ObjToBool();
                        if (enabled)
                        {
                            cof.Interceptors.AddTyped(item, Predicates.ForNameSpace(interceptorsModule) /*,Predicates.ForNameSpace(IInterceptorsModule)*/);////这种是配置只需要代理的层, Predicates.ForNameSpace("Sukt.Core.Application.Contracts")
                        }
                        //config.NonAspectPredicates.AddService("IUnitofWork");//需要过滤掉不需要代理的服务层
                    });
                }
            }
        }
Ejemplo n.º 13
0
 public void Configure(IApplicationBuilder app, ConfigureServicesContext context)
 {
     Assert.NotNull(app);
     Assert.NotNull(context);
     Assert.NotNull(context.Configuration);
     Assert.NotNull(context.HostEnvironment);
 }
Ejemplo n.º 14
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var service = context.Services;

            service.AddMvc();
            var configuration = context.GetConfiguration();

            context.Services.Configure <AppOptionSettings>(configuration.GetSection("Destiny"));
            var settings = context.GetConfiguration <AppOptionSettings>("Destiny");

            context.Services.AddObjectAccessor <AppOptionSettings>(settings);
            if (!settings.Cors.PolicyName.IsNullOrEmpty() && !settings.Cors.Url.IsNullOrEmpty()) //添加跨域
            {
                _corePolicyName = settings.Cors.PolicyName;
                context.Services.AddCors(c =>
                {
                    c.AddPolicy(settings.Cors.PolicyName, policy =>
                    {
                        policy.WithOrigins(settings.Cors.Url
                                           .Split(",", StringSplitOptions.RemoveEmptyEntries).ToArray())
                        //policy.WithOrigins("http://localhost:5001")//支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的
                        .AllowAnyHeader().AllowAnyMethod().AllowCredentials();//允许cookie;
                    });
                });
            }

            //context.Services.AddTransient<IPrincipal>();
            //context.Services.AddAuthentication().AddOpenIdConnect(Options =>
            //{
            //    Options.Authority = configuration["AuthServer:Authority"];
            //});
        }
Ejemplo n.º 15
0
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.Configure <DataFilterOptions>(options =>
     {
         options.Configure <ISoftDelete>(c => c.Disable());
     });
     base.ConfigureServices(context);
 }
Ejemplo n.º 16
0
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.AddSuktDbContext <EntityFrameworkCoreContext>();
     context.Services.AddUnitOfWork <EntityFrameworkCoreContext>();
     context.Services.AddRepository();
     //AddAddSuktDbContextWnitUnitOfWork(context.Services);
     //AddRepository(context.Services);
 }
Ejemplo n.º 17
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="context"></param>
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.RegisterEasyNetQ(c =>
     {
         var options = c.Resolve <IOptions <RabbitMQOptions> >();
         return(c.Resolve <IConnectionStringParser>().Parse(options.Value.ConnectionString));
     });
 }
Ejemplo n.º 18
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="context"></param>
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.Configure <SettingOptions>(opt =>
     {
         opt.SettingProviders.Add <DefaultValueSettingProvider>();
         opt.SettingProviders.Add <DefaultSettingProvider>();
     });
 }
Ejemplo n.º 19
0
 public override void PreConfigureServices(ConfigureServicesContext context)
 {
     DefaultInterfaceSelector.ExcludeServicePredicates.Clear();
     ConventionalRegistrarList.Registrars.Clear();
     context.Services.Replace(ServiceDescriptor.Transient(typeof(IOptionsFactory <>), typeof(Options.OptionsFactory <>)));
     context.Services.AddExcludeServiceOfRegisterAssemblyByConvention(t => t.IsAssignableTo <IDependency>());
     context.Services.AddConventionalRegistrar(new BasicConventionalRegistrar());
 }
Ejemplo n.º 20
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var connStr = context.Services.GetFileByConfiguration("Destiny:Redis:ConnectionString", "未找到存放Rdis链接的文件");
            var csredis = new CSRedisClient(connStr);

            RedisHelper.Initialization(csredis);
            context.Services.TryAddSingleton <ICache, CSRedisCache>();
        }
Ejemplo n.º 21
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var service   = context.Services;
            var assemblys = service.GetOrAddSingletonService <IAssemblyFinder, AssemblyFinder>()?.FindAll();

            service.AddMediatR(assemblys);
            service.AddEvents();
        }
Ejemplo n.º 22
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var services  = context.Services;
            var assemblys = services.GetOrAddSingletonService <IAssemblyFinder, AssemblyFinder>()?.FindAll();

            services.AddMediatR(assemblys);
            services.TryAddTransient <IMediatorHandler, InMemoryDefaultBus>();
        }
Ejemplo n.º 23
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            context.Services.Options <AuditingOptions>().Configure <IServiceProvider>((options, serviceProvider) => options.Contributors.Add(new AspNetCoreAuditContributor()));
            context.Services.TryAddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            context.Services.AddAuthorization();

            context.Services.AddSingleton <IAuthorizationHandler, PermissionRequirementHandler>();
        }
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            UseSql(context.Services);
            AddUnitOfWork(context.Services);;
            AddRepository(context.Services);

            //return base.ConfigureServices(service);
        }
Ejemplo n.º 25
0
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.Configure <DbConnectionOptions>(o =>
     {
         o.ConnectionStrings.Default = "DefaultConnection";
         o.ConnectionStrings.Add("Connection1", "ConnectionString1");
     });
 }
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     IsAutoAddFunction = context.GetAppSettings().IsAutoAddFunction;
     if (IsAutoAddFunction)
     {
         context.Services.AddSingleton <IFunctionHandler, FunctionHandler>();
     }
 }
Ejemplo n.º 27
0
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.ReplaceSingleton <ICurrentPrincipalAccessor, FakePrincipalAccessor>();
     context.Services.Configure <PermissionOptions>(opt =>
     {
         opt.DefinitionProviders.Add <FakePermissionDefinitionProvider>();
         opt.GrantingProviders.Add <FakePermissionGrantingProvider>();
     });
 }
Ejemplo n.º 28
0
 public override void ConfigureServices(ConfigureServicesContext context)
 {
     context.Services.RegisterAssemblyByConvention();
     context.Services.Configure <SettingOptions>(opts =>
     {
         opts.DefinitionProviders.Add <TestSettingDefinitionProvider>();
     });
     base.ConfigureServices(context);
 }
Ejemplo n.º 29
0
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            var isOpen = context.GetConfiguration()[_name].AsTo <bool>();

            if (isOpen.IsTrue())
            {
                context.Services.AddMiniProfiler().AddEntityFramework();
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        public override void ConfigureServices(ConfigureServicesContext context)
        {
            context.Services.AddAutoMapperObjectMapper();

            var mapperAccessor = new MapperAccessor();

            context.Services.AddSingleton <IMapperAccessor>(_ => mapperAccessor);
            context.Services.AddSingleton <MapperAccessor>(_ => mapperAccessor);
        }