2

Ich benutze die Out-of-the-Box-Authentifizierung mit individuellen Benutzerkonten, die mit der Visual Studio-Vorlage für Web API geliefert wird. Ich konsumiere die API in einem Angular.js Frontend.Zusätzliche Informationen bei der Verwendung von Web Api/OWIN Auth Token

Nicht überraschend, muss ich zusätzliche Informationen über den Benutzer wie Vor- und Nachnamen speichern. Ich möchte diese zusätzlichen Werte in der Register-Methode festlegen.

Frage: Sollte ich das Benutzermodell erweitern oder sollte ich diese Informationen als Ansprüche speichern?

Es wäre ein Bonus, wenn diese Information in der Antwort von/Token "automatisch" zurückgegeben würde, ohne zusätzlichen Code hinzuzufügen.

+1

diese gefunden: http: // Stackoverflow .com/questions/26357054/return-more-info-zum-client-using-oauth-bearer-tokens-generation-und-owin-in –

Antwort

0

Ich entschied mich, die zusätzlichen Informationen in der Antwort auf den /Token Aufruf zurückzugeben.

In ApplicationOAuthProvider (der Teil des Vorlagenprojektes ist) Ich änderte CreateProperties und angepasst Anrufe CreateProperties an 2 Stellen die Benutzer weitergeben, nicht nur der Benutzername:

public static AuthenticationProperties CreateProperties(ApplicationUser user) 
      { 
       var firstNameClaim = user.Claims.FirstOrDefault(c => c.ClaimType == ClaimTypes.GivenName); 
       var lastNameClaim = user.Claims.FirstOrDefault(c => c.ClaimType == ClaimTypes.Surname); 
       var roles = user.Claims.Where(c => c.ClaimType == ClaimTypes.Role).Select(c => c.ClaimValue); 

       IDictionary<string, string> data = new Dictionary<string, string> 
       { 
        { "userName", user.UserName }, 
        {"firstName", firstNameClaim != null ? firstNameClaim.ClaimValue : "" }, 
        {"lastName", lastNameClaim != null ? lastNameClaim.ClaimValue : "" }, 
        {"roles", string.Join(",", roles) } 
       }; 

       return new AuthenticationProperties(data); 
      } 
Verwandte Themen