TL.ClaimsPrincipalExtensionsLibrary 0.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package TL.ClaimsPrincipalExtensionsLibrary --version 0.2.0
                    
NuGet\Install-Package TL.ClaimsPrincipalExtensionsLibrary -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TL.ClaimsPrincipalExtensionsLibrary" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TL.ClaimsPrincipalExtensionsLibrary" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="TL.ClaimsPrincipalExtensionsLibrary" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TL.ClaimsPrincipalExtensionsLibrary --version 0.2.0
                    
#r "nuget: TL.ClaimsPrincipalExtensionsLibrary, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TL.ClaimsPrincipalExtensionsLibrary@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TL.ClaimsPrincipalExtensionsLibrary&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=TL.ClaimsPrincipalExtensionsLibrary&version=0.2.0
                    
Install as a Cake Tool

🛡️ TL.ClaimsPrincipalExtensionsLibrary

NuGet .NET License: MIT ADR

O TL.ClaimsPrincipalExtensionsLibrary é uma biblioteca .NET BCL pura voltada para a simplificação e segurança na extração de dados de autenticação e autorização a partir de instâncias de System.Security.Claims.ClaimsPrincipal (HttpContext.User).


📦 Instalação

Adicione o pacote ao seu projeto através do .NET CLI:

dotnet add package TL.ClaimsPrincipalExtensionsLibrary

🚀 Funcionalidades Principais

Método Retorno Descrição
IsAuthenticated() bool Verifica se o principal possui identidade ativa e autenticada com segurança.
Id() long Extrai o identificador numérico da claim sub (Subject ID).
ClaimSub() string? Retorna o valor original em texto da claim sub.
Email() string? Retorna o endereço de email autenticado (email ou ClaimTypes.Email).
FullName() string? Retorna o nome completo do usuário autenticado (name ou ClaimTypes.Name).
HasRole(role) bool Valida se o usuário possui determinado papel/permissão de acesso.
ClaimRoles() IEnumerable<string> Retorna todas as roles associadas ao usuário no token.
Roles<T>() IEnumerable<T> Faz o parse tipado das roles do usuário para um tipo enum de autorização.
Claim(claimType) Claim? Obtém a primeira ocorrência da claim especificada.

💡 Exemplos de Uso

using ClaimsPrincipalExtensionsLibrary;
using Microsoft.AspNetCore.Http;

public class PedidoController
{
    public void Processar(HttpContext context)
    {
        var user = context.User;

        // 1. Verificação de Autenticação Segura
        if (!user.IsAuthenticated())
        {
            throw new UnauthorizedAccessException("Usuário não autenticado.");
        }

        // 2. Extração Simplificada de Dados de Identidade
        long usuarioId = user.Id();
        string email = user.Email() ?? "desconhecido@empresa.com";
        string nome = user.FullName() ?? "Usuário";

        // 3. Validação de Papel/Role
        if (user.HasRole("Administrador"))
        {
            Console.WriteLine($"Acesso prioritário liberado para {nome} (ID: {usuarioId})");
        }
    }
}

🏛️ Decisões Arquiteturais e Segurança

Para detalhes sobre suporte a múltiplos esquemas de claims (JWT vs WS-Federation) e prevenção contra mascaramento de identidade, consulte o documento oficial:


📄 Licença

Distribuído sob a licença MIT.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on TL.ClaimsPrincipalExtensionsLibrary:

Package Downloads
TL.ExtensionLibrary.Application

Clean Architecture Application metapackage: application orchestration, object utilities, and identity extensions, transitively including Domain.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.8.0 174 10/1/2026
0.7.0 163 9/26/2026
0.6.0 172 9/22/2026
0.5.0 168 9/16/2026
0.4.2 180 9/16/2026
0.4.1 172 9/11/2026
0.4.0 180 9/6/2026
0.3.0 115 9/6/2026
0.2.0 120 9/5/2026
0.1.0 115 9/4/2026
0.0.1 213 10/19/2024