1

Ich arbeite an einer mvc 5-Anwendung und habe die WS-Föderation für die Authentifizierung mit einer externen IP-Adresse konfiguriert. Basierend auf der Funktionalität der Anwendung müssen die Rollen der Benutzer jedoch von der Anwendung selbst verwaltet werden. Ein Administrator der Anwendung wird verschiedene Zugriffsebenen auf die Anwendung von einem Administrationsbereich der Anwendung aus ermöglichen. und da ich zum ersten Mal mit ASP.NET Identity arbeite, bin ich verloren, wie ich mich von hier fortbewegen kann.So implementieren Sie die externe Authentifizierung mit lokalen Ansprüchen in mvc 5

  • Muss ich einen benutzerdefinierten ClaimsAuthenticationManager für diesen Zweck implementieren?
  • Muss ich auch einen UserManager implementieren, um eine lokale Liste von Benutzern zu erstellen, um ihre Ansprüche verwalten zu können?

Jede Richtung/Hilfe wird geschätzt.

Danke,

Antwort

0

Sie externe Ansprüche in der Überschreibung von CreateUserIdentityAsync hinzufügen können.

hinzufügen Dies wird nur Rollen aus dem Federated Login:

public override async Task<ClaimsIdentity> CreateUserIdentityAsync(ApplicationUser user) 
{ 
    var externalIdentity = 
     await AuthenticationManager.GetExternalIdentityAsync(DefaultAuthenticationTypes.ExternalCookie); 

    var localIdentity = await user.GenerateUserIdentityAsync((ApplicationUserManager)UserManager); 
    foreach (var item in externalIdentity.Claims.Where(x => x.Type == ClaimTypes.Role)) 
     localIdentity.AddClaim(new Claim(ClaimTypes.Role, item.Value)); 

    return localIdentity; 
} 
Verwandte Themen