1

我需要了解如何使用 Facebook 和/或 Google 为外部登录实现控制器代码。所以我正在按照这两个 MS 页面guide1guide2创建一个测试应用程序来测试外部登录(Fb/Google)。但是在使用说明创建了 Asp.Net Core 2.2 和 3.0 应用程序之后:

dotnet new webapp -o WebApp1 -au 个人 -uld 代码 -r WebApp1

没有任何代码显示像指南中那样的 Facebook 按钮,我也找不到与它相关的任何代码!我正在寻找一些控制器代码,以显示如何将外部用户添加到身份的 AspNetUsers 表中。

也许有一个 github repo 有我可以查看的代码?

这是我所看到的。

在此处输入图像描述

这是指南显示的内容。

在此处输入图像描述

4

3 回答 3

0

该代码已经存在,但您必须注册您打算使用的外部提供程序。以Facebook为例:

services.AddAuthentication().AddFacebook(facebookOptions =>
{
    facebookOptions.AppId = Configuration["Authentication:Facebook:AppId"];
    facebookOptions.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
});

一旦您配置了一个或多个外部提供程序,这些按钮就会在登录视图中亮起。

于 2019-10-05T11:19:22.763 回答
0

ASP.NET Core 2.1 及更高版本提供 ASP.NET Core Identity 作为 Razor 类库。包含 Identity 的应用程序可以应用脚手架来选择性地添加 Identity Razor 类库 (RCL) 中包含的源代码。请参阅文档:ASP.NET Core 项目中的脚手架标识

将身份源文件搭建到您的应用程序后,您可以找到所有与身份相关的代码。对于外部登录,您可以检查ExternalLogin.cshtml.cs文件夹内的Areas/Identity/Pages/Account文件。在功能OnGetCallbackAsync中你会发现身份会检查外部登录用户信息并确认本地用户与外部用户关联,如果是,则登录用户;如果没有,它会将用户重定向到另一个页面,要求用户在本地数据库中创建一个帐户。

要启用外部登录,如文档所示,您需要注册您打算使用的外部提供程序。

于 2019-10-07T03:05:23.867 回答
0

如果您计划集成外部身份验证提供程序,可以查看Azure Active Directory B2C (ADB2C) 。这将使您不必单独与每个提供商(Facebook、Google 等)集成。然后配置全部从 Azure 门户完成。

您可以从这里下载代码示例。

于 2019-10-05T09:19:11.707 回答