Beispiel #1
0
 // This method gets called by the runtime. Use this method to add services to the container.
 public void ConfigureServices(IServiceCollection services)
 {
     services.AddControllersWithViews();
     ConfigureRepositories.AddServices(services, Configuration);
     ConfigureServiceDependencies.AddServices(services);
     services.AddAutoMapper(typeof(Startup));
 }
Beispiel #2
0
 // This method gets called by the runtime. Use this method to add services to the container.
 public void ConfigureServices(IServiceCollection services)
 {
     ConfigureRepositories.AddServices(services, Configuration);
     ConfigureServiceDepenedencies.AddServices(services);
     services.AddAutoMapper(typeof(Startup));
     services.AddControllers();
     services.AddSwaggerGen(c =>
     {
         c.SwaggerDoc("v1", new OpenApiInfo {
             Title = "WebApi", Version = "v1"
         });
     });
 }
Beispiel #3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddLocalization(options => options.ResourcesPath = "Resources");

            services.AddMvc()
            .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
            .AddDataAnnotationsLocalization()
            .AddMvcLocalization();

            services.Configure <RequestLocalizationOptions>(opts =>
            {
                var supportedCultures = new List <CultureInfo>
                {
                    new CultureInfo("en"),
                    new CultureInfo("fr"),
                    new CultureInfo("hi-IN"),
                    new CultureInfo("ba-RU"),
                    new CultureInfo("ar-SA"),
                    new CultureInfo("gu-IN")
                };
                opts.DefaultRequestCulture = new RequestCulture("en");
                opts.SupportedCultures     = supportedCultures;
                opts.SupportedUICultures   = supportedCultures;
            });

            //var cultureInfo = new CultureInfo("ar-SA"); //arabic
            //var cultureInfo = new CultureInfo("hi-IN"); //Hindi
            // var cultureInfo = new CultureInfo("gu-IN"); // Gujarati
            //var cultureInfo = new CultureInfo("ba-RU"); //Russian
            //var cultureInfo = new CultureInfo("fr"); //French
            //CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
            //CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;


            //services.AddControllersWithViews().
            //    AddMvcLocalization()
            //    .AddViewLocalization()
            //    .AddDataAnnotationsLocalization();

            ConfigureRepositories.AddServices(services, Configuration);
            ConfigureServiceDepenedencies.AddServices(services);
            services.AddAutoMapper(typeof(Startup));
        }
        public void ConfigureServices(IServiceCollection services)
        {
            // Repositories
            ConfigureRepositories.Register(services);

            // Services
            ConfigureServiceImpl.Register(services);

            services.AddOptions();

            services.AddSingleton <IMongoDbManager, MongoDbManager>();

            services.AddAuthentication();

            string sqlConnectionString = Configuration["ConnectionStrings:DefaultConnection"];
            bool   useInMemoryProvider = bool.Parse(Configuration["Data:BloodFloaterConnection:InMemoryProvider"]);

            services.AddDbContext <BloodFloaterContext>(options => {
                switch (useInMemoryProvider)
                {
                case true:
                    options.UseInMemoryDatabase();
                    break;

                default:
                    options.UseSqlServer(sqlConnectionString);
                    break;
                }
            });

            // Polices
            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser().Build());
            }
                                      );

            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                                  builder => builder.AllowAnyOrigin()
                                  .AllowAnyMethod()
                                  .WithHeaders("authorization", "accept", "content-type", "origin")
                                  .AllowCredentials());
            });

            //services.AddCors(options =>
            //{
            //    options.AddPolicy("AllowSpecificOrigin",
            //        builder => builder.WithOrigins("http://localhost:8100")
            //        .AllowAnyMethod()
            //        .AllowAnyHeader()
            //        .AllowCredentials());
            //});

            var jwtAppSettingOptions = Configuration.GetSection(nameof(JwtIssuerOptions));

            // Configure JwtIssuerOptions
            services.Configure <JwtIssuerOptions>(options =>
            {
                options.Issuer             = jwtAppSettingOptions[nameof(JwtIssuerOptions.Issuer)];
                options.Audience           = jwtAppSettingOptions[nameof(JwtIssuerOptions.Audience)];
                options.SigningCredentials = new SigningCredentials(_signingKey, SecurityAlgorithms.HmacSha256);
            });

            // Add MVC services to the services container.


            services.Configure <MvcOptions>(options =>
            {
                options.Filters.Add(new CorsAuthorizationFilterFactory("CorsPolicy"));
            });

            services.AddMvc(config =>
            {
                config.Filters.Add(new CorsAuthorizationFilterFactory("CorsPolicy"));
            }).AddJsonOptions(options =>
            {
                options.SerializerSettings.ContractResolver = new DefaultContractResolver();
            });
        }
Beispiel #5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddAuthentication(
                CertificateAuthenticationDefaults.AuthenticationScheme)
            .AddCertificate(options =>
            {
                options.Events = new CertificateAuthenticationEvents
                {
                    OnCertificateValidated = context =>
                    {
                        var claims = new[]
                        {
                            new Claim(
                                ClaimTypes.NameIdentifier,
                                context.ClientCertificate.Subject,
                                ClaimValueTypes.String,
                                context.Options.ClaimsIssuer),
                            new Claim(ClaimTypes.Name,
                                      context.ClientCertificate.Subject,
                                      ClaimValueTypes.String,
                                      context.Options.ClaimsIssuer)
                        };

                        context.Principal = new ClaimsPrincipal(
                            new ClaimsIdentity(claims, context.Scheme.Name));
                        context.Success();

                        return(Task.CompletedTask);
                    }
                };
            });


            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy", policy =>
                {
                    policy.AllowAnyOrigin();
                    policy.AllowAnyMethod();
                    policy.AllowAnyHeader();
                });
            });

            services.AddControllers();
            ConfigureSwagger(services);

            //Configuration Dependency Injection
            ConfigureRepositories.ConfigureDependencies(Configuration, services);
            ConfigureServicesDependencies.Configure(services);
            ConfigureMappings.Configure(services);
            //Configuration Dependency Injection

            services.AddHsts(options =>
            {
                options.Preload           = true;
                options.IncludeSubDomains = true;
                options.MaxAge            = TimeSpan.FromDays(60);
                options.ExcludedHosts.Add("example.com");
                options.ExcludedHosts.Add("www.example.com");
            });

            services.AddHttpsRedirection(options =>
            {
                options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
                options.HttpsPort          = 5001;
            });

            if (!_env.IsDevelopment())
            {
                services.AddHttpsRedirection(options =>
                {
                    options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect;
                    options.HttpsPort          = 443;
                });
            }
        }