ASP.NET Основной API — Как получить запись мандата на основе идентификатора пользователя для входа в систему

#c# #asp.net-core

Вопрос:

В ASP.NET Основной веб-API, у меня есть этот код:

 public MandateGetDto FromMandateToMandateGetDto(Mandate mandate)  {  MandateGetDto mandateDto = new MandateGetDto();  var principal = new ClaimsPrincipal();  var loggedInUserId = principal.FindFirstValue(ClaimTypes.NameIdentifier);   mandateDto.MerchantId = mandate.MerchantId;  mandateDto.DueDate = mandate.DueDate;  mandateDto.StartDate = mandate.StartDate;  mandateDto.EndDate = mandate.EndDate;  return mandateDto;  }  

То, что у меня есть выше, выбирает все записи.

Я использую:

var loggedInUserId = principal.FindFirstValue(типы утверждений.Идентификатор имени);

чтобы получить идентификатор пользователя, вошедшего в систему:

Но как мне выбрать записи в мандате, где MerchantId = loggedInUserId ?

Спасибо

Комментарии:

1. Новый пустой ClaimsPrincipal экземпляр не будет содержать никаких утверждений. Ваша loggedInUserId воля будет пустой.

2. @RichardDeeming — Что мне сделать, чтобы получить эти данные на основе идентификатора loggedInUserId?

3. Вам нужно каким-то образом получить доступ к вошедшему в систему пользователю. Либо передайте его своему методу, либо введите IHttpContextAccessor класс, чтобы получить текущее HttpContext и получить его User свойство.