ASP.NET Identität "Role-based" Ansprüche
Verstehe ich, dass ich verwenden können, Ansprüche, Aussagen über einen user:
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Peter"));
claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
Aber wie sollte ich speichern "role-based" Ansprüche? Zum Beispiel:
Den Benutzer ist ein super-administrator.
claims.Add(new Claim("IsSuperAdmin, "true"));
Den Wert der parameter "true" fühlt sich völlig überflüssig. Wie sonst kann diese Anweisung ausgedrückt werden mit Forderungen?
InformationsquelleAutor der Frage davenewza | 2015-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist bereits für Sie erledigt das framework. Wenn der Benutzer eingeloggt ist, werden alle Benutzer-Rollen Hinzugefügt werden, werden Forderungen mit Forderungen geben, die
ClaimTypes.Role
und Werte sind Rollennamen.Und beim ausführen
IPrincipal.IsInRole("SuperAdmin")
Rahmen eigentlich überprüft, ob die Forderung mit TypClaimTypes.Role
und WertSuperAdmin
vorhanden ist, auf die Benutzer.So brauchen Sie nicht, etwas besonderes zu tun. Nur das hinzufügen eines Benutzers zu einer Rolle.
InformationsquelleAutor der Antwort trailmax
Speichern Sie Rollen über das ClaimType Rolle
InformationsquelleAutor der Antwort JCS
Müssen Sie die Rolle in Anspruch, die mit einer Art von ClaimsType.Rolle und geben Sie dann den Anspruch geben, enthält die Rolle in der "ClaimsIdentity", wie unten gezeigt.
Diese kann man dann verwenden Sie die
[Authorize(Roles = "SuperAdmin")]
Attribut im Controller.InformationsquelleAutor der Antwort Macey41