У меня есть приложение .net core 2.1, в котором у меня есть стандартный шаблон аутентификации электронной почты / пароля, а также позволяющий пользователям входить / регистрироваться с помощью Google / Facebook.
Я также использую EntityFramework ...
У меня есть рабочий процесс для инициирования вызова для обеих учетных записей социальных сетей, и я могу войти в систему, используя любую учетную запись. Это фрагмент метода ConfigureServices в моем файле Startup.cs.
После входа пользователя в системув их социальной учетной записи я хочу добавить некоторую дополнительную информацию в Identity
.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 метод добавления информации о претензиях заключается в том, где я хочу:- адрес электронной почты аутентифицированного пользователя находится в нашей системе (если он зарегистрирован) или нет ... в любом случае, я хочу иметь возможность проверить базу данных (EF) и либо добавить новую запись, либо получить существующую запись и некоторые претензииинформация для идентификации.
Мне просто интересно, можно ли получить доступ к базе данных EF изнутри ConfiМетод gureServices ... У меня проблемы с поиском чего-либо, что говорит, что я могу ...
, и если там нет возможности получить доступ к базе данных ... есть ли лучшее место, где я могу захватить поток пользователя послеаутентификация в социальных сетях, чтобы я мог проверять базу данных?
Заранее спасибо.
JS