NonInventPurchasingSystem/CPRNIMS.WebApi/Security/ClaimsPrincipalExtensions.cs

26 lines
848 B
C#

using CPRNIMS.Infrastructure.Dto.Account;
using System.Security.Claims;
namespace CPRNIMS.WebApi.Security
{
public static class ClaimsPrincipalExtensions
{
public static UserClaimsDto? ToUserClaims(this ClaimsPrincipal user)
{
if (user?.Identity?.IsAuthenticated != true)
return null;
return new UserClaimsDto
{
UserId = user.FindFirstValue(ClaimTypes.NameIdentifier) ?? "",
UserName = user.FindFirstValue(ClaimTypes.Name) ?? "",
FullName = user.FindFirstValue("FullName") ?? "",
Company = user.FindFirstValue("Company") ?? "",
Roles = user.FindAll(ClaimTypes.Role)
.Select(r => r.Value)
.ToList()
};
}
}
}