Вы можете получить loggedInUserId
в вашем Repository Layer
, используя IHttpContextAccessor
следующим образом:
public class Repository
{
private readonly IHttpContextAccessor _httpContextAccessor;
public Repository(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void YourRepositoryMethod()
{
var userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
// or
var userId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);
}
}
Затем вам нужно зарегистрировать IHttpContextAccessor
в классе Startup
следующим образом:
public void ConfigureServices(IServiceCollection services)
{
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
// Or you can also register as follows
services.AddHttpContextAccessor();
}