示例#1
0
        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);
        }