Я понимаю, что я могу использовать претензии делать заявление о пользователе:ASP.NET Идентичность «Ролевой» Претензии
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Peter"));
claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
Но как я должен хранить «на основе ролей» претензии? Например:
Пользователь супер администратор.
claims.Add(new Claim("IsSuperAdmin, "true"));
Параметр значение "истина" чувствует себя совершенно излишним. Как еще это выражение может быть выражено с использованием претензий?
Какова связь между претензиями типа Role и таблицей AspNetRoles? – mayu
@Tymski 'AspNetRoles' содержит список ролей. Когда пользователь входит в систему, все эти роли добавляются в файл cookie в качестве претензий типа 'ClaimTypes.Role'. Претензии в cookie недолговечны. Записи в базе данных просто копируются в файл cookie. – trailmax
Я должен указать, что 'IPrincipal.IsInRole (« xx »)' не обязательно использует 'ClaimTypes.Role' при поиске подходящего требования. Например, «WindowsPrincipal», который вы можете получить после проверки подлинности Windows, фактически использует «ClaimTypes.GroupSid» для указания ролей. Вместо этого используйте свойство 'ClaimsIdentity.RoleClaimType'. – Rob