From a800b3b9f18ae3e8ab030c30c5d7b6504f2a5ebb Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sat, 1 Aug 2020 20:14:34 +0200 Subject: Initial commit --- src/server/Startup.cs | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/server/Startup.cs (limited to 'src/server/Startup.cs') diff --git a/src/server/Startup.cs b/src/server/Startup.cs new file mode 100644 index 0000000..ad98370 --- /dev/null +++ b/src/server/Startup.cs @@ -0,0 +1,67 @@ +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Dough.Models; +using Dough.Utilities; +using Dough.Models.Database; + +namespace Dough +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + private const string MainCorsPolicy = "MainCorsPolicy"; + + public void ConfigureServices(IServiceCollection services) + { + + services.AddCors(options => + { + options.AddPolicy(MainCorsPolicy, builder => + { + builder + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials() + .WithOrigins("http://localhost:8080"); + }); + }); + + services.AddDbContext(options => { + options.UseSqlite("Data Source=database.sqlite"); + }); + + services.AddControllers(); + + services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) + .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options => + { + options.LoginPath = "/api/account/login"; + options.SlidingExpiration = true; + options.LogoutPath = "/api/account/logout"; + }); + } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + app.UseDeveloperExceptionPage(); + + app.UseCors(MainCorsPolicy); + app.UseRouting(); + app.UseStatusCodePages(); + app.UseAuthentication(); + app.UseAuthorization(); + app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); + } + } +} -- cgit v1.3