From 84442410a5682891cd785059ec7d994c1341e14d Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 3 May 2024 22:03:26 +0200 Subject: [PATCH] =?UTF-8?q?Erweiterte=20Funktionalit=C3=A4t=20durch=20Hinz?= =?UTF-8?q?uf=C3=BCgen=20eines=20Endpunkts=20zur=20Zuweisung=20von=20Sprac?= =?UTF-8?q?hen=20zu=20Cookies.=20Implementierte=20eine=20CORS-Richtlinie,?= =?UTF-8?q?=20die=20die=20Konfiguration=20von=20Urspr=C3=BCngen=20=C3=BCbe?= =?UTF-8?q?r=20appsettings.json=20erm=C3=B6glicht.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/HomeController.cs | 11 +++++++++++ EnvelopeGenerator.Web/Program.cs | 19 ++++++++++++++++++- EnvelopeGenerator.Web/appsettings.json | 1 + 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index 1d2c742c..a4cb6a99 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -13,6 +13,7 @@ using Microsoft.Extensions.Localization; using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Resources; using EnvelopeGenerator.Application.DTOs; +using Microsoft.AspNetCore.Localization; namespace EnvelopeGenerator.Web.Controllers { @@ -214,6 +215,16 @@ namespace EnvelopeGenerator.Web.Controllers return Ok(new { EnvelopeUuid = envelopeUuid, ReceiverSignature = receiverSignature }); } + [HttpPost("{language}")] + public IActionResult PostLanguage([FromQuery] string language) + { + Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName, CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(language)), new CookieOptions() + { + Expires = DateTimeOffset.UtcNow.AddYears(1) + }); + return Redirect(Request.Headers["Referer"].ToString()); + } + public IActionResult Error404() => this.ViewError404(); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Program.cs b/EnvelopeGenerator.Web/Program.cs index 0ba100e0..8d6a459e 100644 --- a/EnvelopeGenerator.Web/Program.cs +++ b/EnvelopeGenerator.Web/Program.cs @@ -22,6 +22,21 @@ try { var builder = WebApplication.CreateBuilder(args); + var allowedOrigins = builder.Configuration.GetSection("AllowedOrigins").Get() ?? + throw new InvalidOperationException("AllowedOrigins section is missing in the configuration."); + + builder.Services.AddCors(options => + { + options.AddPolicy("SameOriginPolicy", builder => + { + builder.WithOrigins(allowedOrigins) + .SetIsOriginAllowedToAllowWildcardSubdomains() + .AllowCredentials() + .AllowAnyMethod() + .AllowAnyHeader(); + }); + }); + builder.Logging.ClearProviders(); builder.Host.UseNLog(); @@ -159,7 +174,9 @@ try app.UseAuthentication(); app.UseAuthorization(); - app.UseCookieBasedLocalizer("de_DE", "en_US"); + app.UseCookieBasedLocalizer("de_DE", "en_US"); + + app.UseCors("SameOriginPolicy"); app.MapControllers(); app.MapFallbackToController("Error404", "Home"); diff --git a/EnvelopeGenerator.Web/appsettings.json b/EnvelopeGenerator.Web/appsettings.json index 5dcb02dc..efa23a43 100644 --- a/EnvelopeGenerator.Web/appsettings.json +++ b/EnvelopeGenerator.Web/appsettings.json @@ -9,6 +9,7 @@ } }, "AdminPassword": "dd", + "AllowedOrigins": [ "https://localhost:7202" ], "NLog": { "throwConfigExceptions": true, "targets": {