30 lines
950 B
C#
30 lines
950 B
C#
using System.Security.Claims;
|
|
using System.Security.Principal;
|
|
|
|
namespace EnotaryoPH.Web.Common.Services
|
|
{
|
|
public class CurrentUserService : ICurrentUserService
|
|
{
|
|
private readonly ClaimsIdentity _user;
|
|
|
|
public CurrentUserService(IPrincipal principal) => _user = principal.Identity as ClaimsIdentity;
|
|
|
|
public string? GetEmail() => _user.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value;
|
|
|
|
public string? GetRole() => _user.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Role)?.Value;
|
|
|
|
public Guid GetUser_UID()
|
|
{
|
|
if (_user == null)
|
|
{
|
|
return Guid.Empty;
|
|
}
|
|
|
|
var uid = _user.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value;
|
|
Guid.TryParse(uid, out var user_UID);
|
|
return user_UID;
|
|
}
|
|
|
|
public bool IsAuthenticated() => _user?.IsAuthenticated ?? false;
|
|
}
|
|
} |