181 messaggi dal 10 agosto 2019
ciao a tutti,essendo nuovo ad asp .net core vorrei chiedere un 'opinione : una funzione che uso in molti punti ha senso metterla in una classe di utility ? sono un pò perplesso sia perchè dovrei portarmi dietro un contesto un pò pesante sia perche non conosco le logiche del framework e quindi potrei fare qualche bestiata ,il metodo sarebbe questo(copiato in locale):
        private string GetId()
        {
            string res = "errore";
            try
            {
                Claim c = this.User.Claims.FirstOrDefault();
                res = c.Value;
            }
            catch (Exception ex)
            {
                //aggiungere log errori
                string msg = "msg";
            }
            return res;
        }

ho visto che l'id è all'indice 0 dei claims e volevo chiedere se la posizione è un dato fisso oppure può variare? ,grazie,ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, puoi scriverti un extension method, che è spiegato qui:
https://docs.microsoft.com/it-it/dotnet/csharp/programming-guide/classes-and-structs/extension-methods


ho visto che l'id è all'indice 0 dei claims e volevo chiedere se la posizione è un dato fisso oppure può variare? ,grazie,ciao

Meglio non affidarsi alla posizione. Ogni claim è una coppia tipo-valore, quindi dovresti ottenere il valore dell'ID in base al tipo del claim.

Ecco un esempio. Crea un nuovo file di codice chiamato ClaimsPrincipalExtensions.cs e mettici dentro questo.
public static class ClaimsPrincipalExtensions 
{
  public static string GetId(this ClaimsPrincipal user) 
  {
     if (!user.Identity.IsAuthenticated)
     {
         //L'utente non era autentcato, restituisco null
         return null;
     }
     return user.FindFirstValue(ClaimTypes.NameIdentifier);
  }
}


Poi da un'action del tuo controller usalo così:
string id = User.GetId();

Dovrai aggiungere le direttive using del caso, ma basta che fai CTRL+. in corrispondenza del testo che reca la sottolineatura ondulata rossa per farti aiutare dai fix.


e non conosco le logiche del framework e quindi potrei fare qualche bestiata

Per questo ti consiglio di seguire un libro o un corso, in modo da evitare i problemi più grossi. Poi resta inteso che se trovi un intoppo su un problema specifico puoi pur sempre chiedere nel forum.

ciao,
Moreno

Enjoy learning and just keep making
181 messaggi dal 10 agosto 2019
ti ringrazio sinceramente per le indicazioni accurate ed i suggerimenti,ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.