Когда заявление сделано, утверждение будет включать тип и значение и, возможно, эмитента. В обработчике это утверждение и эмитент могут быть проверены до подтверждения доступа.
Однако этот эмитент не хранится в базе данных Identity, так как же обработчик затем проверяет эмитент?
Я неправильно понимаю, как все это работает? Насколько я понимаю, пользователь делает утверждение определенного типа, что его утверждение имеет определенное значение, а эмитент является проверяющим типом утверждения, фактически имеющим это значение для этого пользователя.
Обработчик проверит значение и может проверить эмитента, но не может, если база данных его не хранит. Тогда я не понимаю цели эмитента.
Я бы хотел, чтобы у пользователя была коллекция утверждений, включая информацию о том, кто/что проверяет эти утверждения, а также для приложение, чтобы в любой момент иметь возможность проверить эти утверждения.
Пожалуйста, помогите мне понять.
Я проверил это так:
- Использование основного приложения asp.net с Identity.
- Зарегистрируйте пользователя .
- Добавьте пользователю утверждение, включающее тип, значение и издателя. (например, номер сотрудника, 312, Microsoft.
- Добавьте [Authorize(Policy="MicrosoftEmployeesOnly")] на контроллере/действии, чтобы ограничить доступ.
- Добавьте политику в службы в StartUp.cs с требованием.
- Добавьте код требования, который имеет обработчик, проверяющий, что у пользователя есть утверждение типа СотрудникNumber, имеет значение и выдается Microsoft.
- Войдите в систему, и утверждения пользователей будут загружены из базы данных в удостоверение.
- Обработчик не сможет проверить пользователь, потому что эмитент (Microsoft) был потерян и теперь просто говорит «Местный орган власти».
Если это правда тогда:
- Зачем вообще проверять эмитента в любом обработчике?
- Как отозвать претензию?
Я немного схожу с ума?
Подробнее здесь: https://stackoverflow.com/questions/423 ... ser-claims
Мобильная версия