NonInventPurchasingSystem/CPRNIMS.WebApi/Security/ClaimsPrincipalExtensions.cs
2026-06-18 16:51:31 +08:00

27 lines
933 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") ?? "",
DepartmentId = Convert.ToInt32(user.FindFirstValue("DepartmentId")),
Roles = user.FindAll(ClaimTypes.Role)
.Select(r => r.Value)
.ToList()
};
}
}
}