- 首先,需要在你的API控制器中注入以下服务:
private readonly UserManager _userManager;
private readonly ApplicationDbContext _dbContext;
public MandateController(UserManager userManager, ApplicationDbContext dbContext)
{
_userManager = userManager;
_dbContext = dbContext;
}
- 在你的API操作中获取当前登录用户的ID:
var loggedInUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);
- 使用loggedInUserId从数据库中获取托管记录:
var mandateRecord = await _dbContext.Mandates.FirstOrDefaultAsync(x => x.UserId == loggedInUserId);
- 完整代码示例:
[Authorize]
[ApiController]
[Route("[controller]")]
public class MandateController : ControllerBase
{
private readonly UserManager _userManager;
private readonly ApplicationDbContext _dbContext;
public MandateController(UserManager userManager, ApplicationDbContext dbContext)
{
_userManager = userManager;
_dbContext = dbContext;
}
[HttpGet("current")]
public async Task> GetCurrentMandate()
{
var loggedInUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);
var mandateRecord = await _dbContext.Mandates.FirstOrDefaultAsync(x => x.UserId == loggedInUserId);
if (mandateRecord == null)
{
return NotFound();
}
return Ok(mandateRecord);
}
}