Refactoring: Vereinfachung der TryGetUserId-Methode und Umstellung des Erweiterungsziels auf ClaimsPrincipal

- TryGetUserId wurde so geändert, dass es direkt die Methode expression-bodied mit int.TryParse verwendet.
- Die Erweiterungsmethoden wurden aktualisiert, sodass sie nun statt auf ControllerBase auf ClaimsPrincipal abzielen, um eine bessere Abstraktion und Wiederverwendbarkeit zu erreichen.
- Andere Methoden wurden aus Gründen der Konsistenz unverändert gelassen.
This commit is contained in:
2025-07-24 18:09:59 +02:00
parent a378862791
commit bed5fae01c
2 changed files with 10 additions and 31 deletions

View File

@@ -7,31 +7,11 @@ namespace WorkFlow.API.Controllers
[APIKeyAuth] [APIKeyAuth]
public static class ControllerExtensions public static class ControllerExtensions
{ {
public static bool TryGetUserId(this ControllerBase controller, out int? id) public static bool TryGetUserId(this ClaimsPrincipal user, out int id) => int.TryParse(user.FindFirstValue(ClaimTypes.NameIdentifier), out id);
public static bool TryGetUsername(this ClaimsPrincipal user, out string username)
{ {
var value = controller.User.FindFirstValue(ClaimTypes.NameIdentifier); var value = user.FindFirstValue(ClaimTypes.Name);
if (value is null)
{
id = default;
return false;
}
if(int.TryParse(value, out int id_int))
{
id = id_int;
return true;
}
else
{
id = null;
return false;
}
}
public static bool TryGetUsername(this ControllerBase controller, out string username)
{
var value = controller.User.FindFirstValue(ClaimTypes.Name);
if (value is null) if (value is null)
{ {
@@ -45,9 +25,9 @@ namespace WorkFlow.API.Controllers
} }
} }
public static bool TryGetName(this ControllerBase controller, out string name) public static bool TryGetName(this ClaimsPrincipal user, out string name)
{ {
var value = controller.User.FindFirstValue(ClaimTypes.Surname); var value = user.FindFirstValue(ClaimTypes.Surname);
if (value is null) if (value is null)
{ {
@@ -61,9 +41,9 @@ namespace WorkFlow.API.Controllers
} }
} }
public static bool TryGetPrename(this ControllerBase controller, out string prename) public static bool TryGetPrename(this ClaimsPrincipal user, out string prename)
{ {
var value = controller.User.FindFirstValue(ClaimTypes.GivenName); var value = user.FindFirstValue(ClaimTypes.GivenName);
if (value is null) if (value is null)
{ {
@@ -77,9 +57,9 @@ namespace WorkFlow.API.Controllers
} }
} }
public static bool TryGetEmail(this ControllerBase controller, out string email) public static bool TryGetEmail(this ClaimsPrincipal user, out string email)
{ {
var value = controller.User.FindFirstValue(ClaimTypes.Email); var value = user.FindFirstValue(ClaimTypes.Email);
if (value is null) if (value is null)
{ {

View File

@@ -1,7 +1,6 @@
using MediatR; using MediatR;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using WorkFlow.API.Attributes; using WorkFlow.API.Attributes;
using WorkFlow.Application.Profiles; using WorkFlow.Application.Profiles;