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.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            #region Registra o banco de dados

            var connection = Configuration["SQLServerConnection:SQLServerConnectionString"];
            services.AddDbContext <SQLServerContext>(options => options.UseSqlServer(connection));

            #endregion

            #region  Registra as dependências da camada de serviços

            services.AddScoped <IUserService, UserService>();

            #endregion

            #region  Registra as dependências da camada de dados

            services.AddScoped <IUserServiceSqlServer, UserServiceSqlServer>();

            #endregion

            #region Registra o Swagger

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
                {
                    Title   = "RestFul API with .NET Core 2.0",
                    Version = "v1"
                });
            });

            #endregion

            #region Registra o modelo de autenticação via JWT

            var signConfiguration = new SignConfigurationcs();
            services.AddSingleton(signConfiguration);

            var tokenConfiguration = new TokenConfigurationcs();

            new ConfigureFromConfigurationOptions <TokenConfigurationcs>(
                Configuration.GetSection("TokenConfigurations")
                ).Configure(tokenConfiguration);

            services.AddSingleton(signConfiguration);

            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;
                paramsValidation.IssuerSigningKey = signConfiguration.Key;
                paramsValidation.ValidateAudience = string.IsNullOrEmpty(tokenConfiguration.Audience);
                paramsValidation.ValidateIssuer   = string.IsNullOrEmpty(tokenConfiguration.Issuer);

                paramsValidation.ValidateIssuerSigningKey = true;
                paramsValidation.ValidateLifetime         = true;
                paramsValidation.ClockSkew = TimeSpan.Zero;
            });

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

            #endregion
        }
Beispiel #2
0
 public UserService(IUserServiceSqlServer userServiceSqlServer, SignConfigurationcs signConfiguration, TokenConfigurationcs tokenConfiguration)
 {
     _userServiceSqlServer = userServiceSqlServer;
     _signConfiguration    = signConfiguration;
     _tokenConfiguration   = tokenConfiguration;
 }