// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { var cadena = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContext <GeneralContext>(opt => opt.UseSqlServer(cadena, b => b.MigrationsAssembly("Verduras"))); services.AddControllersWithViews(); #region configure strongly typed settings objects var appSettingsSection = Configuration.GetSection("AppSetting"); services.Configure <AppSetting>(appSettingsSection); #endregion #region Configure jwt authentication inteprete el token var appSettings = appSettingsSection.Get <AppSetting>(); var key = Encoding.ASCII.GetBytes(appSettings.Secret); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = true; x.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false }; } ); #endregion //Agregar OpenApi Swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "School API", Description = "School API - ASP.NET Core Web API", TermsOfService = new Uri("https://cla.dotnetfoundation.org/"), Contact = new OpenApiContact { Name = "Unicesar", Email = string.Empty, Url = new Uri("https://github.com/borisgr04/CrudNgDotNetCore3"), }, License = new OpenApiLicense { Name = "Licencia dotnet foundation", Url = new Uri("https://www.byasystems.co/license"), } }); }); // In production, the Angular files will be served from this directory services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/dist"; }); }