#c# #asp.net #asp.net-mvc-5 #asp.net-identity
#c# #asp.net #asp.net-mvc-5 #asp.net-identity
Вопрос:
Я сгенерировал шаблон Visual Studio MVC5 по умолчанию с ASP.net Идентификация индивидуальных учетных записей. Когда я использую внешнюю аутентификацию, поставщиками удостоверений являются Google, Facebook и т.д. Итак, что действует как поставщик удостоверений с отключенными внешними учетными записями?
Комментарии:
1. Сама база данных? (не уверен, что я понимаю вопрос, поскольку все сторонние входы в систему создают токен (который затем сохраняется в той же базе данных и повторно упоминается при последующем входе в систему)).
2. Это имеет смысл. Я немного запутался в терминологии. Способ идентификации означает, что приложение «передает» свой процесс аутентификации сторонней стороне. Поэтому, когда внешние поставщики отключены, мое приложение «передает» аутентификацию на аутсорсинг самому себе?
3. Не совсем. Готовая идентификация — это просто база данных entity Framework, поверх которой установлена [внутренняя] аутентификация. Сторонние логины — это просто реализации их протоколов OAuth, позволяющие пользователям «входить в систему» с поставщиком (и использовать их в качестве средства проверки), но вы все равно сохраняете user [profile] локально на своем сайте. Можно «войти в систему с помощью Google», затем перейти в свой профиль и установить пароль, чтобы в будущем вы могли либо повторно войти в систему с помощью Google, либо ввести свой пароль.
4. Если я вас правильно понимаю, «точкой интеграции» для обоих способов является AuthenticationManager. Метод входа в систему? Он принимает ClaimsIdentity, который может поступать как из нашей базы данных, так и от внешнего поставщика, а затем связывает пользователя с некоторым токеном (cookie), который указывает, что пользователь подписан.
5. ДА. Единственное отличие заключается в том, что один метод — это имя пользователя / пароль (локальный логин), а другой использует учетные данные другой стороны (которая затем сообщает вашему сайту «yay» или «ney»). Если был перенаправлен успешный вход в систему, контроллер создает идентификатор для этой третьей стороны и передает его для входа вместо локального имени пользователя / пароля.