26 lines
848 B
C#
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()
|
|
};
|
|
}
|
|
}
|
|
}
|