public async Task Invoke(HttpContext httpContext, IUserInfoProvider userInfoProvider) { var idClaim = httpContext.User.Claims.FirstOrDefault(c => c.Type == "UserId")?.Value; var departmentIdClaim = httpContext.User.Claims.FirstOrDefault(c => c.Type == "DepartmentId")?.Value; if (!string.IsNullOrEmpty(idClaim) && Guid.TryParse(idClaim, out var userId) && !string.IsNullOrEmpty(departmentIdClaim) && Guid.TryParse(departmentIdClaim, out var departmentId)) { userInfoProvider.SetUserInfo(userId, departmentId); } await _next(httpContext); }