GetExternalLoginInfoAsync возвращает нулевое значение

Я работаю над ядром MVC 2 и IdentityServer4, внешний пользователь успешно вошел в систему, проблема, с которой я сталкиваюсь, заключается в том, что эта функция всегда возвращает значение null в HomeController.

 var info = await _signInManager.GetExternalLoginInfoAsync();

Но он работает в AccountController, когда пользователь входит в систему и перенаправляется обратно клиенту с IdentityServer.

public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
{
    var info = await _signInManager.GetExternalLoginInfoAsync();
}

Мы будем благодарны за любую помощь.


person Saifal Maluk    schedule 06.05.2018    source источник


Ответы (2)


Моя проблема была в SignInScheme. Когда я прокомментировал строку ниже в Startup и использовал значения по умолчанию, она начала работать.

services.AddAuthentication().AddGoogle("Google", opt =>
{
  //opt.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
  ...
}
person Jan Zahradník    schedule 13.11.2018

Все это основано на файлах cookie, поэтому убедитесь, что файл cookie получен правильно. Я думаю, что по умолчанию он установит путь к cookie, и это может означать, что он не отправляется на ваш AccountController, потому что путь отличается.

person mackie    schedule 09.05.2018