// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { RSACryptoServiceProvider myRSA = new RSACryptoServiceProvider(2048); RSAParameters publicKey = myRSA.ExportParameters(true); key = new RsaSecurityKey(publicKey); tokenOptions = new TokenAuthOptions { Audience = "http://localhost:5000/", Issuer = "http://localhost:5000/", SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.RsaSha256Signature) }; services.AddSingleton<TokenAuthOptions>(tokenOptions); services.AddAuthorization(auth => { auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder() .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser().Build()); }); services.Configure<MvcJsonOptions>(options => { if (_hostingEnv.IsDevelopment()) { options.SerializerSettings.Formatting = Formatting.Indented; } options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); }); services.Configure<MvcOptions>(options => { options.CacheProfiles.Add("IndexPage", new CacheProfile { Duration = 60 * 60 * 24 }); }); services .AddIdentity<User, string>() .AddEF() .AddDefaultTokenProviders(); services.AddCors(); services.AddMvc(); services.AddSingleton(_ => _configuration); services.AddEF(); services.AddScoped<ITrainingService, TrainingService>(); services.AddSingleton<IDateTimeService, DateTimeService>(); services.AddScoped<ITrainingWordProvider, TrainingWordProvider>(); services.AddScoped<ITrainingSessionFactory, TrainingSessionFactory>(); }
public TokenController(TokenAuthOptions tokenOptions) { _tokenOptions = tokenOptions; }