| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using BulkPrintingAPI.Configuration;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.AspNetCore.Mvc.Authorization;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Logging;
- using Microsoft.IdentityModel.Tokens;
- using System;
- namespace BulkPrintingAPI
- {
- public class Startup
- {
- public Startup(IHostingEnvironment env)
- {
- var builder = new ConfigurationBuilder()
- .SetBasePath(env.ContentRootPath)
- .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
- .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
- .AddJsonFile("secrets.json", optional: true, reloadOnChange: true)
- .AddJsonFile($"secrets.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
- .AddEnvironmentVariables();
- Configuration = builder.Build();
- }
- public IConfigurationRoot Configuration { get; }
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddMemoryCache();
- services.AddMvc(config =>
- {
- var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
- config.Filters.Add(new AuthorizeFilter(policy));
- });
- services.AddSingleton(new TokenAuthenticationOptions(
- Configuration.GetSection("TokenAuthentication")));
- services.AddSingleton(new DataEncryptionOptions(
- Configuration.GetSection("DataEncryption")));
- services.AddSingleton(new MAX.ClientFactory(
- Configuration.GetSection("MAX")));
- services.AddDbContext<MAX.Models.MAXContext>(
- options => options.UseSqlServer(
- Configuration["Database:ConnectionString"],
- b => b.MigrationsAssembly("BulkPrintingAPI")));
- }
- public void Configure(IApplicationBuilder app, IHostingEnvironment env,
- ILoggerFactory loggerFactory, TokenAuthenticationOptions tokenAuthenticationOptions)
- {
- loggerFactory.AddConsole(Configuration.GetSection("Logging"));
- loggerFactory.AddDebug();
- var tokenValidationParameters = new TokenValidationParameters
- {
- ValidateIssuerSigningKey = true,
- IssuerSigningKey = tokenAuthenticationOptions.Key,
- TokenDecryptionKey = tokenAuthenticationOptions.Key,
- ValidateIssuer = true,
- ValidIssuer = tokenAuthenticationOptions.Issuer,
- ValidateAudience = true,
- ValidAudience = tokenAuthenticationOptions.Audience,
- ValidateLifetime = true,
- ClockSkew = TimeSpan.Zero
- };
- var bearerOptions = new JwtBearerOptions
- {
- AutomaticAuthenticate = true,
- AutomaticChallenge = true,
- SaveToken = true,
- TokenValidationParameters = tokenValidationParameters
- };
- app.UseJwtBearerAuthentication(bearerOptions);
- app.UseMvc();
- }
- }
- }
|