Esempio n. 1
0
        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            // Force always JSON formatter
            config.Formatters
            .JsonFormatter
            .SupportedMediaTypes
            .Add(new MediaTypeHeaderValue("text/html"));

            // IoC
            config.DependencyResolver =
                new IoCResolverConfiguration(RegisterDependency.Register());
        }
Esempio n. 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            RegisterDependency.Register(services);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddDbContext <ApiContext>(o =>
                                               o.UseNpgsql(Configuration.GetConnectionString("SgpConnection")));

            var jwtConfiguration = Configuration
                                   .GetSection(nameof(JwtTokenSettings));

            services.Configure <JwtTokenSettings>(jwtConfiguration);
            var jwtTokenSettings = jwtConfiguration
                                   .Get <JwtTokenSettings>();

            services.AddAuthentication(o =>
            {
                o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                o.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(o =>
            {
                o.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateLifetime         = true,
                    ValidateAudience         = true,
                    ValidAudience            = jwtTokenSettings.Audience,
                    ValidateIssuer           = true,
                    ValidIssuer              = jwtTokenSettings.Issuer,
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(UTF8
                                                                        .GetBytes(jwtTokenSettings.IssuerSigningKey))
                };
            });

            services.Configure <ConnectionStrings>(Configuration
                                                   .GetSection(nameof(ConnectionStrings)));

            services.Configure <PaginacaoSettings>(Configuration
                                                   .GetSection(nameof(PaginacaoSettings)));

            services.Configure <AutorizacaoSettings>(Configuration
                                                     .GetSection(nameof(AutorizacaoSettings)));

            // CORS (Cross-Origin Requests)
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                                  builder => builder
                                  .AllowAnyOrigin()
                                  //.WithOrigins("https://origem1.com", "http://origem2.com.br")
                                  .AllowAnyMethod()
                                  .AllowAnyHeader()
                                  .AllowCredentials()
                                  .Build());
            });

            services.AddSwaggerGen(o =>
            {
                o.SwaggerDoc("v1", new Info
                {
                    Title   = "SME - API Pedagógico",
                    Version = "v1"
                });
            });
        }