[HttpGet("me"), Authorize]
public async Task<ActionResult<ResponseDto<GetMeResponseDto>>> GetMe()
{
try
{
ResponseDto<GetMeResponseDto> result = new();
var cts = new CancellationTokenSource();
var context = await _dbFactory.CreateDbContextAsync(cts.Token);
var userName = User?.Identity?.Name;
if (!string.IsNullOrEmpty(userName))
{
var user = await context.Users.FirstOrDefaultAsync(x => x.Username == userName,
cancellationToken: cts.Token);
if (user != null)
{
var role = User!.FindFirstValue(ClaimTypes.Role) ?? string.Empty;
result.Data = new GetMeResponseDto()
{
Id = user.Id,
Username = userName,
Role = role,
};
result.HasError = false;
}
}
return Ok(result);
}
catch (Exception e)
{
_logger.LogErrorEx(e, e.Message);
}
return BadRequest();
}
[HttpGet("me"), Authorize]
public async Task<ActionResult<ResponseDto<GetMeResponseDto>>> GetMe()
{
try
{
ResponseDto<GetMeResponseDto> result = new();
var cts = new CancellationTokenSource();
var context = await _dbFactory.CreateDbContextAsync(cts.Token);
var userName = User?.Identity?.Name;
if (!string.IsNullOrEmpty(userName))
{
var user = await context.Users.FirstOrDefaultAsync(x => x.Username == userName,
cancellationToken: cts.Token);
if (user != null)
{
var role = User!.FindFirstValue(ClaimTypes.Role) ?? string.Empty;
result.Data = new GetMeResponseDto()
{
Id = user.Id,
Username = userName,
Role = role,
};
result.HasError = false;
}
}
return Ok(result);
}
catch (Exception e)
{
_logger.LogErrorEx(e, e.Message);
}
return BadRequest();
}
[HttpGet("me"), Authorize] public async Task<ActionResult<ResponseDto<GetMeResponseDto>>> GetMe() { try { ResponseDto<GetMeResponseDto> result = new(); var cts = new CancellationTokenSource(); var context = await _dbFactory.CreateDbContextAsync(cts.Token); var userName = User?.Identity?.Name; if (!string.IsNullOrEmpty(userName)) { var user = await context.Users.FirstOrDefaultAsync(x => x.Username == userName, cancellationToken: cts.Token); if (user != null) { var role = User!.FindFirstValue(ClaimTypes.Role) ?? string.Empty; result.Data = new GetMeResponseDto() { Id = user.Id, Username = userName, Role = role, }; result.HasError = false; } } return Ok(result); } catch (Exception e) { _logger.LogErrorEx(e, e.Message); } return BadRequest(); }
Or you can use HttpContext
to access it.
References
https://www.youtube.com/watch?v=fhWIkbF18lM
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/http-context?view=aspnetcore-7.0
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/use-http-context?view=aspnetcore-7.0
https://www.youtube.com/watch?v=7vqAHD9DlIA