2016-03-29 5 views
0

ich habe Rolemanager implementiert, wie hier erklärt: http://johnatten.com/2014/10/26/asp-net-web-api-and-identity-2-0-customizing-identity-models-and-implementing-role-based-authorization/Rückkehr Rollen mit mit EF GetUserInfo Methode asp.net WebAPI2.0

jetzt brauche ich die API die Rollen aus dem WebAPI auf den „Client“ (was zurückzukehren eine andere ASP.net-Seite, die als Frontend fungiert, damit ich sehen kann, welche Ansichten ich vor Benutzern verbergen soll, die nicht Admin sind.

kann ich der GetUserInfo-Methode im Accounts-Controller die Rollen hinzufügen, oder sollte ich anders vorgehen und wie soll ich das implementieren?

Antwort

0

landete ich es so in den Account Umsetzung:

public UserInfoViewModel GetUserInfo() 
    { 
     ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity); 
     var rols = ((ClaimsIdentity) User.Identity).Claims 
      .Where(c => c.Type == ClaimTypes.Role) 
      .Select(c => c.Value); 

     var UIM = new UserInfoViewModel 
     { 
      Email = User.Identity.GetUserName(), 
      HasRegistered = externalLogin == null, 
      LoginProvider = externalLogin != null ? externalLogin.LoginProvider : null, 
      roles = rols 
     }; 
     return UIM; 
    } 

und dann Zugabe dies den UserInfoViewModel:

public IEnumerable<string> roles; 
+0

Verbesserungsvorschläge willkommen –