示例#1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <DataContext.DataContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("Golf80")));

            services.AddAutoMapper(typeof(Startup));

            IocConfig.ConfigureServices(services);

            services.AddControllers();
            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Version        = "v1",
                    Title          = "ToDo API",
                    Description    = "A simple example ASP.NET Core Web API",
                    TermsOfService = new Uri("https://example.com/terms"),
                    Contact        = new OpenApiContact
                    {
                        Name  = "Shayne Boyer",
                        Email = string.Empty,
                        Url   = new Uri("https://twitter.com/spboyer"),
                    },
                    License = new OpenApiLicense
                    {
                        Name = "Use under LICX",
                        Url  = new Uri("https://example.com/license"),
                    }
                });
            });
        }
示例#2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            BackgroundServiceConfig.ConfigureServices(services, Configuration);
            MvcConfig.ConfigureServices(services, Configuration);

            AuthConfig.ConfigureServices(services, Configuration);
            DataConfig.ConfigureServices(services, Configuration);
            CacheConfig.ConfigureServices(services, Configuration);

            ReportServiceConfig.ConfigureServices(services, Configuration);
            UploadConfig.ConfigureServices(services, Configuration);

            return(IocConfig.ConfigureServices(services, Configuration));
        }
示例#3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options => {
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            // Adding Authentication
            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultScheme             = JwtBearerDefaults.AuthenticationScheme;
            })

            // Adding Jwt Bearer
            .AddJwtBearer(options =>
            {
                options.SaveToken                 = true;
                options.RequireHttpsMetadata      = false;
                options.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidateIssuer   = true,
                    ValidateAudience = true,
                    ValidAudience    = Configuration["JwtSettings:ValidAudience"],
                    ValidIssuer      = Configuration["JwtSettings:ValidIssuer"],
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["JwtSettings:Secret"]))
                };
            });
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0).AddJsonOptions(o => {
                o.JsonSerializerOptions.PropertyNamingPolicy = null;
                o.JsonSerializerOptions.DictionaryKeyPolicy  = null;
            });
            services.AddCors(options =>
            {
                options.AddPolicy("AllowAllOrigins", builder =>
                {
                    builder.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin();
                });
            });
            services.AddApplicationInsightsTelemetry();
            services.AddControllers();
            services.AddHttpContextAccessor();

            //Call service injection
            IocConfig.ConfigureServices(ref services, Configuration);
            Infrastructure.Repository.IocConfig.ConfigureServices(ref services);
            DataAccess.IocConfig.ConfigureServices(ref services);
            BusinessLayer.IocConfig.ConfigureServices(ref services);
            services.Configure <AppKeyConfig>(Configuration.GetSection("AppKeyConfig"));

            //Register swagger
            services.AddSwaggerGen(c => {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "Event Yojana Admin Service", Version = "v1"
                });

                const string idSecurity = "AppKey";
                c.AddSecurityDefinition(idSecurity, new OpenApiSecurityScheme
                {
                    Name        = Configuration.GetValue <string>("AppKeyConfig:HeaderName"),
                    In          = ParameterLocation.Header,
                    Description = "Individual Application Key.",
                    Type        = SecuritySchemeType.ApiKey
                });
                c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme()
                {
                    Name         = Configuration.GetValue <string>("JwtSettings:HeaderName"),
                    Type         = SecuritySchemeType.ApiKey,
                    Scheme       = "Bearer",
                    BearerFormat = "JWT",
                    In           = ParameterLocation.Header,
                    Description  = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef\"",
                });

                var xmlFileWeb = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                c.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFileWeb), true);

                c.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference {
                                Type = ReferenceType.SecurityScheme, Id = idSecurity
                            }
                        },
                        new string[] { }
                    }
                });
                c.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference
                            {
                                Type = ReferenceType.SecurityScheme,
                                Id   = "Bearer"
                            }
                        },
                        new string[] {}
                    }
                });

                c.OperationFilter <CustomeBindingFilters>();
                c.OperationFilter <UnSecureHeaderFilter>();
                c.OperationFilter <GenericResponseFilter>();
                c.OperationFilter <FileOperationFilter>();
                c.EnableAnnotations();
            });
        }