Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Autofac;
- using Autofac.Extensions.DependencyInjection;
- using Microsoft.AspNetCore.Authentication.JwtBearer;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Logging;
- using Microsoft.Extensions.Options;
- using Microsoft.IdentityModel.Tokens;
- using NTPProject.Core.Repositories;
- using NTPProject.Infrastructure.IoC;
- using NTPProject.Infrastructure.IoC.Modules;
- using NTPProject.Infrastructure.Mappers;
- using NTPProject.Infrastructure.Repositories;
- using NTPProject.Infrastructure.Services;
- using NTPProject.Infrastructure.Settings;
- namespace NTPProject.Api
- {
- public class Startup
- {
- public IConfiguration Configuration { get; }
- public IContainer ApplicationContainer { get; private set; }
- public Startup(IConfiguration configuration)
- {
- Configuration = configuration;
- }
- // This method gets called by the runtime. Use this method to add services to the container.
- public IServiceProvider ConfigureServices(IServiceCollection services)
- {
- services.AddAuthorization(x => x.AddPolicy("admin", p => p.RequireRole("admin")));
- services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
- .AddJwtBearer(options =>
- {
- //options.Audience = Configuration.GetSection("jwt:issuer").Value;
- //options.ClaimsIssuer = Configuration.GetSection("jwt:issuer").Value;
- options.RequireHttpsMetadata = false;
- options.SaveToken = true;
- options.TokenValidationParameters = new TokenValidationParameters
- {
- ValidIssuer = Configuration.GetSection("jwt:issuer").Value,
- ValidateAudience = false,
- IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection("jwt:key").Value))
- };
- });
- services.AddMvc();
- var builder = new ContainerBuilder();
- builder.Populate(services);
- builder.RegisterModule(new ContainerModule(Configuration));
- ApplicationContainer = builder.Build();
- return new AutofacServiceProvider(ApplicationContainer);
- }
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplicationLifetime appLifetime)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
- app.UseAuthentication();
- app.UseMvc();
- appLifetime.ApplicationStopped.Register(() => ApplicationContainer.Dispose());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement