Я совершенно не знаком с использованием claims
в ASP.NETIdentity
и хочу получить представление о лучших методах использования Roles and/or Claims
.
После всего этого чтения у меня все еще есть такие вопросы, как...
Q: Мы больше не используем роли?
Q: Если да, почему все еще предлагаются роли?
В: Должны ли мы использовать только претензии?
В: Должны ли мы использовать роли и претензии вместе?
Моя первоначальная мысль заключается в том, что мы "должны" использовать их вместе. Я вижу claims
как подкатегории для Roles
, которые они поддерживают.
ДЛЯ ПРИМЕРА:
Роль: учет
Претензии: CanUpdateLedger, CanOnlyReadLedger, CanDeleteFromLedger
Q: Они должны быть взаимоисключающими?
Вопрос: Или лучше обратиться к претензиям ТОЛЬКО и "полностью квалифицировать" свои претензии?
Q: Итак, какие здесь лучшие методы?
ПРИМЕР: Использование ролей и претензий вместе
Конечно, вам нужно написать свою собственную логику атрибутов для этого...
[Authorize(Roles="Accounting")]
[ClaimAuthorize(Permission="CanUpdateLedger")]
public ActionResult CreateAsset(Asset entity)
{
// Do stuff here
return View();
}
ПРИМЕР: Полностью квалифицировать ваши претензии
[ClaimAuthorize(Permission="Accounting.Ledger.CanUpdate")]
public ActionResult CreateAsset(Asset entity)
{
// Do stuff here
return View();
}