我有一个.net core 2.1应用程序,其中有一个标准的电子邮件/密码身份验证模式,还允许用户使用Google / Facebook登录/注册。
我也在使用EntityFramework ...
我具有用于启动两个社交帐户的挑战的工作流,并且可以使用任何一个帐户登录。这是Startup.cs中ConfigureServices方法的摘录。
用户使用其社交帐户登录后,我想向身份添加一些其他信息
.AddFacebook(facebookOptions =>
{
facebookOptions.AppId = Configuration["AppSettings:FacebookSettings:AppId"];
facebookOptions.AppSecret = Configuration["AppSettings:FacebookSettings:AppSecret"];
//return the following fields
facebookOptions.Fields.Add("first_name");
facebookOptions.Fields.Add("last_name");
facebookOptions.Fields.Add("email");
facebookOptions.SaveTokens = true;
facebookOptions.Events.OnTicketReceived = context =>
{
AddApplicationClaims(context);
return Task.CompletedTask;
};
})
.AddGoogle(googleOptions =>
{
googleOptions.ClientId = Configuration["AppSettings:GoogleSettings:ClientID"];
googleOptions.ClientSecret = Configuration["AppSettings:GoogleSettings:ClientSecret"];
googleOptions.SaveTokens = true;
googleOptions.Events.OnTicketReceived = context =>
{
AddApplicationClaims(context);
return Task.CompletedTask;
};
});
在OnTicketReceived事件中,添加声明信息的方法是我想要的位置: 1.查看经过社交身份验证的用户的电子邮件地址是否在我们的系统中(如果他们已注册)...无论哪种方式,我都希望能够检查数据库(EF)并添加新记录或检索现有记录和对身份的一些索偿信息。
我只是想知道是否可以从ConfigureServices方法中访问EF数据库...我很难找到可以说的任何东西...
并且如果无法访问那里的数据库...是否有更好的地方可以在进行社交身份验证后捕获用户流,以便可以对数据库进行检查?
谢谢。
J.S。