TL.ClaimsPrincipalExtensionsLibrary
0.5.0
See the version list below for details.
dotnet add package TL.ClaimsPrincipalExtensionsLibrary --version 0.5.0
NuGet\Install-Package TL.ClaimsPrincipalExtensionsLibrary -Version 0.5.0
<PackageReference Include="TL.ClaimsPrincipalExtensionsLibrary" Version="0.5.0" />
<PackageVersion Include="TL.ClaimsPrincipalExtensionsLibrary" Version="0.5.0" />
<PackageReference Include="TL.ClaimsPrincipalExtensionsLibrary" />
paket add TL.ClaimsPrincipalExtensionsLibrary --version 0.5.0
#r "nuget: TL.ClaimsPrincipalExtensionsLibrary, 0.5.0"
#:package TL.ClaimsPrincipalExtensionsLibrary@0.5.0
#addin nuget:?package=TL.ClaimsPrincipalExtensionsLibrary&version=0.5.0
#tool nuget:?package=TL.ClaimsPrincipalExtensionsLibrary&version=0.5.0
🛡️ TL.ClaimsPrincipalExtensionsLibrary
Strongly-typed ClaimsPrincipal extensions for ASP.NET Core: clean, safe access to user IDs, roles, emails, and authentication claims.
Extensões fortemente tipadas para ClaimsPrincipal no ASP.NET Core: acesso limpo e seguro a IDs, roles, e-mails e claims de autenticação.
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 was computed. net5.0-windows was computed. net6.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.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.