GetExternalLoginInfoAsync返回null值

时间:2018-05-06 05:28:01

标签: identityserver4 asp.net-mvc-controller

我正在开发MVC核心2和IdentityServer4,外部用户已成功登录,我遇到的问题是此函数在HomeController中始终返回null。

 var info = await _signInManager.GetExternalLoginInfoAsync();

但是当用户登录并从IdentityServer重定向回客户端时,它在AccountController中工作。

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

任何形式的帮助都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

我的问题在SignInScheme中。当我在Startup中注释下面的行并使用默认设置时,它开始起作用。

services.AddAuthentication().AddGoogle("Google", opt =>
{
  //opt.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
  ...
}

答案 1 :(得分:0)

这一切都基于Cookie,因此请检查Cookie是否正确选取。我认为默认它会设置cookie的路径,这可能意味着它不会发送到您的AccountController,因为路径不同。