IdentityServer4 使用 UserId 保存和检索数据



IdentityServer4 在其他表中创建了一个带有 userId 的 AspNetUsers 表,我想使用这些用户 ID 来存储和检索相关数据。

当我使用持有者令牌发送请求时,我将如何使用以下示例从请求中检索用户 ID;

[Authorize]
[HttpPost]
public async Task<IActionResult> Post([FromBody]VehicleRequest message)
{
userId = "?";
Vechicle vehicle = await _vehicleRepository.AddVehicle(
message.licensePlate,
message.make,
message.model,
userId);
return new ObjectResult(vehicle);
}
[Authorize]
[HttpGet]
public async Task<IActionResult> GetVehicles()
{
userId = "?";
IList<Vechicle> vehicles = await _vehicleRepository.GetVehicles(userId);
return new ObjectResult(vehicles);
}

用户 ID 通常位于控制器操作中可通过 User.Identity.Claims 访问的"sub"声明中。