2022-07-31 01:39:37 +04:30

30 lines
678 B
C#

using System.Security.Claims;
using Microsoft.AspNetCore.Http;
namespace BuildingBlocks.Utils;
public interface ICurrentUserProvider
{
long? GetCurrentUserId();
}
public class CurrentUserProvider : ICurrentUserProvider
{
private readonly IHttpContextAccessor _httpContextAccessor;
public CurrentUserProvider(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public long? GetCurrentUserId()
{
var nameIdentifier = _httpContextAccessor?.HttpContext?.User?.FindFirstValue(ClaimTypes.NameIdentifier);
long.TryParse(nameIdentifier, out var userId);
return userId;
}
}