Я пытаюсь реализовать аутентификацию формы в ядре ASP.Net с аутентификацией Google и Facebook. Я последовал за некоторыми учебниками, и после некоторых битв мне удалось заставить его работать и то, и другое.Внешняя аутентификация AspNet Core как с Google, так и с Facebook
Однако проблема заключается в том, что я не могу использовать обе аутентификации для одного и того же электронного письма.
Например, мой адрес электронной почты: '[email protected]'. Я использовал аутентификацию Facebook для входа в систему сначала ... Зарегистрировал мою электронную почту, и она успешно работала и поместила мою запись в таблицу dbo.ASPNetUsers.
Затем я вышел из системы, нажав на Google Authentication для входа в систему. Он успешно прошел аутентификацию, но когда я попытался зарегистрироваться, он продолжает говорить, что мой адрес уже сделан.
Я попытался сделать то же самое для других интернет-сайтах (например, Stackoverflow). Я использовал тот же адрес электронной почты как для Google, так и для Facebook, и веб-сайт знает, что я один и тот же человек, и оба моих логина/заявки связаны, хотя они происходят из разных мест (Google & Facebook).
Я хотел бы иметь эту функцию в моем веб-сайте, и не могли бы вы, пожалуйста, дайте мне знать, как я могу добиться этого.
Теоретически, он должен поместить еще одну строку в 'dbo.AspNetUserLogins' и должен связать один и тот же UserId с несколькими входами.
Нужно ли реализовать собственный метод SignInManager.SignInAsync для достижения этой функции? Или мне не хватает какой-либо конфигурации?
В шаблонах VS вы добавляете другого провайдера, перейдя на страницу «Управление» после входа в систему и добавив этого провайдера, а не путем попыток зарегистрироваться как новый пользователь. Связывание по одному адресу электронной почты недостаточно сильное, так как приложение не может подтвердить, что вы действительно владеете этим адресом. – Tratcher