Ответ 1
Защита, основанная на требованиях, помогает отделить вашу модель безопасности от вашего домена приложения. Требованием может быть все, что вы хотите прикрепить к личности пользователя, например, по электронной почте, номеру телефона или флажку, указывающий, является ли пользователь суперпользователем. Это дает вам максимальную гибкость в отношении того, как вы хотите настроить процесс авторизации. Исторически в приложении ASP.NET вам необходимо определить, какие роли вы хотите разрешить и применять их при программировании вашего приложения. Затем вы проверяете, находится ли пользователь в роли для авторизации. Это сочетает вашу модель безопасности с вашим приложением. В зависимости от претензий вы обладаете гораздо большей гибкостью, и более типично настраивать схему авторизации, которая берет ресурс (например: Заказы в системе управления заказами) и операцию (например: чтение, запись, выполнение) в качестве входных параметров для вашего авторизации, эффективно отделяя безопасность от вашего приложения. См. ClaimsPrincipalPermissionAttribute для примера этой техники.
Защита от претензий требуется с OAuth, но она хорошо работает и с другими схемами авторизации. Пользовательские заявки, которые вы используете в своем приложении, доступны из ClaimsPrincipal.Current. Существуют методы хранения этой информации в файлах cookie, хотя конвейер безопасности ASP.NET не делает этого по умолчанию.
Обсуждение, на которое вы ссылаетесь, относится к Windows Identity Foundation (WIF), который теперь является частью .NET в версии 4.5, и поэтому идентификация на основе утверждений является гражданином первого класса. Все типы Principal наследуются от ClaimsPrincipal. Для хорошего обзора безопасности на основе требований смотрите эту бесплатную электронную книгу " Руководство по идентификации и контролю доступа (2-е издание)". Настоящим экспертом в этой области является Доминик Байер и его блог, наполненный полезной информацией по этой теме. У него также есть отличный онлайн-курс по Pluralsight под названием " Identity and Access Control в ASP.NET 4.5.