using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace nuget_host { public class Startup { public Startup(IConfiguration config) { Configuration = config; } public IConfiguration Configuration { get; } public static string ExternalUrl { get; private set; } public static string SourceDir { get; private set; } public static string RootApiKeySecret { get; private set; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { // base-address of your identityserver options.Authority = ExternalUrl; // if you are using API resources, you can specify the name here options.Audience = "packages"; }); services.AddMvc(); services.AddDataProtection(); services.AddIdentityServer() .AddInMemoryClients(Config.Clients) .AddInMemoryIdentityResources(Config.IdentityResources) .AddInMemoryApiResources(Config.ApiResources) .AddDeveloperSigningCredential() .AddTestUsers(Config.TestUsers); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } ExternalUrl = Configuration["NuGet:ExternalUrl"]; SourceDir = Configuration["NuGet:SourceDir"]; RootApiKeySecret = Configuration["RootApiKeySecret"]; app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } } }