Servicestack netcoreidentityauthprovider: System.FormatException bei Verwendung von GUID-IDsC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Servicestack netcoreidentityauthprovider: System.FormatException bei Verwendung von GUID-IDs

Post by Anonymous »

Ich stoße in einem .NET 10-Projekt mit ServiceStack v10 auf eine System.FormatException, wenn ich stringbasierte UserAuthIds (GUIDs) verwende. Der Fehler tritt insbesondere dann auf, wenn einem authentifizierten Benutzer keine Rollen oder Berechtigungen zugewiesen sind.
Fehlermeldung:

System.FormatException: Die Eingabezeichenfolge hatte nicht das richtige Format.

Ursachenanalyse: Die Ausnahme wird während der Phase der Identitätsauflösung ausgelöst. Es scheint, dass, wenn die Benutzersitzung keine Rollen enthält, der NetCoreIdentityAuthProvider einem Fallback-Pfad folgt, um ClaimTypes.NameIdentifier zu füllen, der versucht, die UserAuthId als Ganzzahl zu analysieren. Wenn dem Benutzer mindestens eine Rolle zugewiesen ist, wird die Identität korrekt aufgelöst, was bestätigt, dass das Problem im leeren Rollenlogikpfad des Anbieters lokalisiert ist.
Minimale Reproduktion:
  • Verwenden Sie ein AuthRepository mit GUIDs als UserAuthId
  • Konfigurieren Sie NetCoreIdentityAuthProvider in ASP.NET Core
  • Authentifizieren Sie einen Benutzer ohne Einträge in der UserAuthRole-Tabelle
  • Greifen Sie auf jede Ressource zu, die die .NET Core-Authentifizierungs-Middleware auslöst

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post