// 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)); }
// 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" }); }); }
// 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(); }); }
// 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; }); } }