using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Login; using Microsoft.AspNetCore.Mvc.Filters; using Newtonsoft.Json; namespace GB5Shared.LoginHeader { public class LoginHeaderAsync : IAsyncActionFilter { public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { if (context.HttpContext.Request.Headers.TryGetValue("Login", out var LoginHeader)) { var LoginDTO = JsonConvert.DeserializeObject(LoginHeader!)!; context.ActionArguments["LoginDTO"] = LoginDTO; } else { throw new ArgumentNullException("Login"); } await next(); } } }