コード例 #1
0
        public IServiceProvider ConfigureServices(IServiceCollection services, IConfigurationRoot configuration)
        {
            var typeFinder            = new WebAppTypeFinder();
            var startupConfigurations = typeFinder.FindClassesOfType <IStartup>();

            var instances = startupConfigurations
                            .Where(startup => EklentiYönetici.EklentiBul(startup)?.Kuruldu ?? true) //ignore not installed plugins
                            .Select(startup => (IStartup)Activator.CreateInstance(startup))
                            .OrderBy(startup => startup.Order);

            //configure services
            foreach (var instance in instances)
            {
                instance.ConfigureServices(services, configuration);
            }

            AddAutoMapper(services, typeFinder);

            var nopConfig = services.BuildServiceProvider().GetService <Config>();

            RegisterDependencies(nopConfig, services, typeFinder);

            if (!nopConfig.IgnoreStartupTasks)
            {
                RunStartupTasks(typeFinder);
            }

            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
            AppDomain.CurrentDomain.SetData("DataDirectory", GenelYardımcı.MapPath("~/App_Data/"));

            return(_serviceProvider);
        }
コード例 #2
0
        public virtual void RegisterRoutes(IRouteBuilder routeBuilder)
        {
            var routeProviders = typeFinder.FindClassesOfType <IRotaSağlayıcı>();

            var instances = routeProviders
                            .Where(routeProvider => EklentiYönetici.EklentiBul(routeProvider)?.Kuruldu ?? true) //ignore not installed plugins
                            .Select(routeProvider => (IRotaSağlayıcı)Activator.CreateInstance(routeProvider))
                            .OrderByDescending(routeProvider => routeProvider.Priority);

            foreach (var routeProvider in instances)
            {
                routeProvider.RegisterRoutes(routeBuilder);
            }
        }
コード例 #3
0
        public void ConfigureRequestPipeline(IApplicationBuilder application)
        {
            var typeFinder            = Resolve <ITypeFinder>();
            var startupConfigurations = typeFinder.FindClassesOfType <IStartup>();

            var instances = startupConfigurations
                            .Where(startup => EklentiYönetici.EklentiBul(startup)?.Kuruldu ?? true) //ignore not installed plugins
                            .Select(startup => (IStartup)Activator.CreateInstance(startup))
                            .OrderBy(startup => startup.Order);

            //configure request pipeline
            foreach (var instance in instances)
            {
                instance.Configure(application);
            }
        }
コード例 #4
0
        protected virtual void AddAutoMapper(IServiceCollection services, ITypeFinder typeFinder)
        {
            var mapperConfigurations = typeFinder.FindClassesOfType <IMapperAyarları>();

            var instances = mapperConfigurations
                            .Where(mapperConfiguration => EklentiYönetici.EklentiBul(mapperConfiguration)?.Kuruldu ?? true) //ignore not installed plugins
                            .Select(mapperConfiguration => (IMapperAyarları)Activator.CreateInstance(mapperConfiguration))
                            .OrderBy(mapperConfiguration => mapperConfiguration.Order);

            var config = new MapperConfiguration(cfg => {
                foreach (var instance in instances)
                {
                    cfg.AddProfile(instance.GetType());
                }
            });

            services.AddAutoMapper();
            AutoMapperAyarları.Init(config);
        }
コード例 #5
0
        public static void AddRotaAuthentication(this IServiceCollection services)
        {
            var authenticationBuilder = services.AddAuthentication(options =>
            {
                options.DefaultChallengeScheme = ÇerezYetkilendirmeVarsayılanları.AuthenticationScheme;
                options.DefaultSignInScheme    = ÇerezYetkilendirmeVarsayılanları.ExternalAuthenticationScheme;
            });

            //add main cookie authentication
            authenticationBuilder.AddCookie(ÇerezYetkilendirmeVarsayılanları.AuthenticationScheme, options =>
            {
                options.Cookie.Name      = ÇerezYetkilendirmeVarsayılanları.CookiePrefix + ÇerezYetkilendirmeVarsayılanları.AuthenticationScheme;
                options.Cookie.HttpOnly  = true;
                options.LoginPath        = ÇerezYetkilendirmeVarsayılanları.LoginPath;
                options.AccessDeniedPath = ÇerezYetkilendirmeVarsayılanları.AccessDeniedPath;
            });

            //add external authentication
            authenticationBuilder.AddCookie(ÇerezYetkilendirmeVarsayılanları.ExternalAuthenticationScheme, options =>
            {
                options.Cookie.Name      = ÇerezYetkilendirmeVarsayılanları.CookiePrefix + ÇerezYetkilendirmeVarsayılanları.ExternalAuthenticationScheme;
                options.Cookie.HttpOnly  = true;
                options.LoginPath        = ÇerezYetkilendirmeVarsayılanları.LoginPath;
                options.AccessDeniedPath = ÇerezYetkilendirmeVarsayılanları.AccessDeniedPath;
            });

            //register and configure external authentication plugins now
            var typeFinder = new WebAppTypeFinder();
            var externalAuthConfigurations = typeFinder.FindClassesOfType <IHariciYetkilendirmeRegistrar>();
            var externalAuthInstances      = externalAuthConfigurations
                                             .Where(x => EklentiYönetici.EklentiBul(x)?.Kuruldu ?? true) //ignore not installed plugins
                                             .Select(x => (IHariciYetkilendirmeRegistrar)Activator.CreateInstance(x));

            foreach (var instance in externalAuthInstances)
            {
                instance.Yapılandır(authenticationBuilder);
            }
        }