Ejemplo n.º 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            //mapeando injeção de dependencias
            services.AddTransient <IProdutoBusiness, ProdutoBusiness>();
            services.AddTransient <IProdutoRepository, ProdutoRepository>(cfg => new ProdutoRepository(Configuration.GetConnectionString("Aula")));


            Mapper.Initialize(cfg =>
            {
                cfg.AddProfile <ViewModelToEntityMap>();
                cfg.AddProfile <EntityToViewModelMap>();
            });

            var signingConfigurations = new LoginConfiguration();

            services.AddSingleton(signingConfigurations);

            var tokenConfigurations = new TokenConfiguration();

            new ConfigureFromConfigurationOptions <TokenConfiguration>(
                Configuration.GetSection("TokenConfiguration"))
            .Configure(tokenConfigurations);
            services.AddSingleton(tokenConfigurations);

            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme
                    = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme
                    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;
                paramsValidation.IssuerSigningKey = signingConfigurations.Key;
                paramsValidation.ValidAudience    = tokenConfigurations.Audience;
                paramsValidation.ValidIssuer      = tokenConfigurations.Issuer;

                // Valida a assinatura de um token recebido
                paramsValidation.ValidateIssuerSigningKey = true;

                // Verifica se um token recebido ainda é válido
                paramsValidation.ValidateLifetime = true;

                // Tempo de tolerância para a expiração de um token (utilizado
                // caso haja problemas de sincronismo de horário entre diferentes
                // computadores envolvidos no processo de comunicação)
                paramsValidation.ClockSkew = TimeSpan.Zero;
            });
            // Ativa o uso do token como forma de autorizar o acesso
            // a recursos deste projeto
            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes
                                   (JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser().Build());
            });
        }
Ejemplo n.º 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            #region AutoMapper
            services.AddAutoMapper(typeof(Startup));
            #endregion

            #region EntityFramework

            services.AddDbContext <DataColetrans>
                (options => options.UseSqlServer(Configuration.GetConnectionString("Coletrans")));

            #region Criptografias e Serviços de Email
            services.AddTransient <Criptografia>();
            services.AddTransient <SHA1Encrypt>();

            var mailSettings = new MailSettings();
            new ConfigureFromConfigurationOptions <MailSettings>
                (Configuration.GetSection("MailSettings"))
            .Configure(mailSettings);

            services.AddTransient <MailService>
                (map => new MailService(mailSettings));

            #endregion



            #region Injeção de Dependência EntityFramework

            services.AddTransient <IMotoristaRepository, MotoristaRepository>();
            services.AddScoped <IMotoristaService, MotoristaService>();
            services.AddTransient <IRotaRepository, RotaRepository>();
            services.AddTransient <IRotaService, RotaService>();
            services.AddTransient <IClienteRepository, ClienteRepository>();
            services.AddTransient <IClienteService, ClienteService>();
            services.AddTransient <IConfiguracaoRepository, ConfiguracaoRepository>();
            services.AddTransient <IContratoRepository, ContratoRepository>();
            services.AddTransient <IMaterialRepository, MaterialRepository>();
            services.AddScoped <IMaterialService, MaterialService>();
            services.AddTransient <IMesReferenciaRepository, MesReferenciaRepository>();
            services.AddTransient <IMesReferenciaService, MesReferenciaService>();
            services.AddTransient <IOSRepository, OSRepository>();
            services.AddTransient <IPagamentoRepository, PagamentoRepository>();
            services.AddTransient <IDiasColetaRepository, DiasColetaRepository>();
            services.AddTransient <IPerfilRepository, PerfilRepository>();
            services.AddTransient <IRoteiroService, RoteiroService>();
            services.AddTransient <IRoteiroRepository, RoteiroRepository>();
            services.AddTransient <ITurnoRepository, TurnoRepository>();



            #endregion

            #endregion

            #region Dapper config e Injeção de dependência

            var connectionString = Configuration.GetConnectionString("Coletrans");

            //mapear as interfaces e classe criadas no repositorio


            services.AddTransient <IUsuarioRepository, UsuarioRepository>
                (map => new UsuarioRepository(connectionString));
            #endregion


            #region Swagger

            services.AddSwaggerGen(
                c =>
            {
                c.SwaggerDoc("v1", new Info                   {
                    Title       = "Sistema de Controle Coleta de Lixo",
                    Description = "API REST para integração com serviços de coleta de lixo",
                    Version     = "v1",
                    Contact     = new Contact
                    {
                        Name  = "Thiago Leta",
                        Url   = "Em construção",
                        Email = "*****@*****.**"
                    }
                });

                //registrando a configuração para uso do HEADER no swagger
                c.OperationFilter <HeaderConfiguration>();
            }
                );



            #endregion

            #region Token
            //mapeando injeção de dependência para a classe tokenconfiguration
            var tokenConfiguration = new TokenConfiguration();
            new ConfigureFromConfigurationOptions <TokenConfiguration>
                (Configuration.GetSection("TokenConfiguration"))
            .Configure(tokenConfiguration);

            //singleton -> terá uma unica instancia durante
            //toda a execução do projeto

            services.AddSingleton(tokenConfiguration);

            //mapear injeção de dependencia login configuration
            var loginConfiguration = new LoginConfiguration();
            services.AddSingleton(loginConfiguration);

            //executando a configuração do JWT para autenticação
            JwtConfiguration.Register(services, tokenConfiguration, loginConfiguration);

            #endregion

            #region Cors
            services.AddRouting(o => o.LowercaseUrls = true);
            services.AddCors(o => o.AddPolicy("CorsPolicy", builder => {
                builder
                .AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .WithExposedHeaders("*");
            }));
        }
Ejemplo n.º 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            #region configuração para geração do TOKEN

            //configuração para geração do TOKEN de autenticação
            //configuração para definir a política de autenticação por JWT
            var signingConfigurations = new LoginConfiguration();
            services.AddSingleton(signingConfigurations);

            var tokenConfigurations = new TokenConfiguration();
            new ConfigureFromConfigurationOptions <TokenConfiguration>(
                Configuration.GetSection("TokenConfiguration"))
            //appsettings.json
            .Configure(tokenConfigurations);
            services.AddSingleton(tokenConfigurations);

            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme = JwtBearerDefaults
                                                        .AuthenticationScheme;

                authOptions.DefaultChallengeScheme = JwtBearerDefaults
                                                     .AuthenticationScheme;
            }).AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;
                paramsValidation.IssuerSigningKey = signingConfigurations.Key;
                paramsValidation.ValidAudience    = tokenConfigurations.Audience;
                paramsValidation.ValidIssuer      = tokenConfigurations.Issuer;

                // Valida a assinatura de um token recebido
                paramsValidation.ValidateIssuerSigningKey = true;

                // Verifica se um token recebido ainda é válido
                paramsValidation.ValidateLifetime = true;

                // Tempo de tolerância para a expiração de um token (utilizado
                // caso haja problemas de sincronismo de horário entre diferentes
                // computadores envolvidos no processo de comunicação)
                paramsValidation.ClockSkew = TimeSpan.Zero;
            });

            // Ativa o uso do token como forma de autorizar o acesso
            // a recursos deste projeto
            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes
                                   (JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser().Build());
            });

            #endregion



            //código (1) para o SWAGGER
            //mapeando o Swagger (documentação API)
            services.AddSwaggerGen(
                swagger =>
            {
                swagger.SwaggerDoc("v1",
                                   new Info
                {
                    Title       = "Sistema Asp.Net Web API",
                    Version     = "v1",
                    Description = "Projeto desenvolvido em aula - C# WebDeveloper",
                    Contact     = new Contact
                    {
                        Name  = "COTI Informática",
                        Url   = "http://www.cotiinformatica.com.br",
                        Email = "*****@*****.**"
                    }
                });

                //inclui o campo para token no swagger
                swagger.OperationFilter <TokenParameter>();
            }
                );


            #region Configuração da ConnectionString

            //configura para enviar a connectionString para as classes
            //resgatar a string de conexão do banco de dados
            //no arquivo appsettings.json
            string connectionString = Configuration.GetConnectionString("Aula");

            //configurar as classes de repositorio para receber a connectionString
            //colocar a Interface e a respectiva classe
            services.AddTransient <IUsuarioRepository, UsuarioRepository>
                (map => new UsuarioRepository(connectionString));

            services.AddTransient <IContaRepository, ContaRepository>
                (map => new ContaRepository(connectionString));

            #endregion



            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }
Ejemplo n.º 4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var connectionString = Configuration.GetConnectionString("Aula");

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

            services.AddTransient <IProdutoBusiness, ProdutoBusiness>();
            services.AddTransient <IUsuarioBusiness, UsuarioBusiness>();
            services.AddTransient <IProdutoRepository, ProdutoRepository>
                (cfg => new ProdutoRepository
                    (connectionString)
                );

            services.AddTransient <IUsuarioRepository, UsuarioRepository>
                (cfg => new UsuarioRepository
                    (connectionString)
                );

            Mapper.Initialize(cfg =>
            {
                cfg.AddProfile <ViewModelToEntityMap>();
                cfg.AddProfile <EntityToViewModelMap>();
            });

            services.AddSwaggerGen(
                s =>
            {
                s.SwaggerDoc("v1",
                             new Info
                {
                    Title       = "Projeto Controle de Produtos",
                    Description = "Curso C# WebDeveloper",
                    Version     = "v1",
                    Contact     = new Contact
                    {
                        Name  = "COTI Informática",
                        Email = "*****@*****.**",
                        Url   = "http://www.cotiinformatica.com.br"
                    }
                });
                s.OperationFilter <AddHeaderParameter>();
            }
                );

            var signingConfigurations = new LoginConfiguration();

            services.AddSingleton(signingConfigurations);

            var tokenConfigurations = new TokenConfiguration();

            new ConfigureFromConfigurationOptions <TokenConfiguration>(
                Configuration.GetSection("TokenConfiguration"))
            .Configure(tokenConfigurations);
            services.AddSingleton(tokenConfigurations);

            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme
                    = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme
                    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;
                paramsValidation.IssuerSigningKey = signingConfigurations.Key;
                paramsValidation.ValidAudience    = tokenConfigurations.Audience;
                paramsValidation.ValidIssuer      = tokenConfigurations.Issuer;

                // Valida a assinatura de um token recebido
                paramsValidation.ValidateIssuerSigningKey = true;

                // Verifica se um token recebido ainda é válido
                paramsValidation.ValidateLifetime = true;

                // Tempo de tolerância para a expiração de um token (utilizado
                // caso haja problemas de sincronismo de horário entre diferentes
                // computadores envolvidos no processo de comunicação)
                paramsValidation.ClockSkew = TimeSpan.Zero;
            });
            // Ativa o uso do token como forma de autorizar o acesso
            // a recursos deste projeto
            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes
                                   (JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser().Build());
            });
        }