TL.ClaimsPrincipalExtensionsLibrary
0.2.0
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
<PackageReference Include="TL.ClaimsPrincipalExtensionsLibrary" Version="0.2.0" />
<PackageVersion Include="TL.ClaimsPrincipalExtensionsLibrary" Version="0.2.0" />
<PackageReference Include="TL.ClaimsPrincipalExtensionsLibrary" />
paket add TL.ClaimsPrincipalExtensionsLibrary --version 0.2.0
#r "nuget: TL.ClaimsPrincipalExtensionsLibrary, 0.2.0"
#:package TL.ClaimsPrincipalExtensionsLibrary@0.2.0
#addin nuget:?package=TL.ClaimsPrincipalExtensionsLibrary&version=0.2.0
#tool nuget:?package=TL.ClaimsPrincipalExtensionsLibrary&version=0.2.0
🛡️ TL.ClaimsPrincipalExtensionsLibrary
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 | Versions 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. |
-
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.