Ich verstehe, dass ich Ansprüche können Aussagen über einen Benutzer zu machen:ASP.NET Identität „rollenbasierte“ Forderungen
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Peter"));
claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
Aber wie soll ich speichern „rollenbasierte“ Ansprüche? Zum Beispiel:
Der Benutzer ist ein Super-Administrator.
claims.Add(new Claim("IsSuperAdmin, "true"));
Der Wert der Parameter "true" fühlt sich vollständig redundant. Wie sonst kann diese Aussage mit Ansprüchen ausgedrückt werden?
Welche Beziehung besteht zwischen Ansprüchen vom Typ Role und der AspNetRoles-Tabelle? – mayu
@Tymski 'AspNetRoles' enthält eine Liste von Rollen. Wenn sich ein Benutzer anmeldet, werden all diese Rollen dem Cookie als Ansprüche vom Typ ClaimTypes.Role hinzugefügt. Ansprüche in Cookies sind von kurzer Dauer. Datensätze in der Datenbank werden nur in den Cookie kopiert. – trailmax
Ich sollte darauf hinweisen, dass 'IPrincipal.IsInRole (" xx ")' nicht unbedingt 'ClaimTypes.Role' verwendet, wenn nach einem übereinstimmenden Anspruch gesucht wird. Zum Beispiel verwendet das 'WindowsPrincipal', das Sie nach der Windows-Authentifizierung erhalten, tatsächlich die' ClaimTypes.GroupSid' zum Angeben von Rollen. Verwenden Sie stattdessen die Eigenschaft ClaimsIdentity.RoleClaimType. – Rob