identityserver4快速启动登录视图模型IsExternalAllogInOnly标志

identityserver4快速启动登录视图模型IsExternalAllogInOnly标志,identityserver4,Identityserver4,我正在与多个外部机构(提供者)一起使用Identityserver。我在这里尝试的场景是,我将一个客户机配置为“EnableLocalLogin”为false。我有多个外部提供者。快速入门中“LoginViewModel.cs”中下面的代码行没有意义 public bool IsExternalLoginOnly=>EnableLocalLogin==false&&ExternalProviders?.Count()==1 这将返回false,并且我不会被重定向到外部提供程序。这应该是Exter

我正在与多个外部机构(提供者)一起使用Identityserver。我在这里尝试的场景是,我将一个客户机配置为“EnableLocalLogin”为false。我有多个外部提供者。快速入门中“LoginViewModel.cs”中下面的代码行没有意义

public bool IsExternalLoginOnly=>EnableLocalLogin==false&&ExternalProviders?.Count()==1

这将返回false,并且我不会被重定向到外部提供程序。这应该是ExternalProviders吗?.Count()>0 在我看来,
IsExternalLoginOnly
的名字不太好。仅当显示登录页面时才会调用:

[HttpGet]
公共异步任务登录(字符串返回URL)
{           
var vm=await_account.BuildLoginViewModelAsync(returnUrl);
if(vm.IsExternalLoginOnly)
{                   
//只有一个登录选项
return wait ExternalLogin(vm.ExternalProviders.First().AuthenticationScheme,returnUrl);
}           
返回视图(vm);
}
它用于在用户没有选择的情况下直接重定向到提供者

现在,在您的情况下,您有多个外部提供者,您必须询问用户使用哪一个。只要客户端允许多个提供者,就不能自动通过此步骤

您仍然可以编写自己的登录代码,并尝试按照
returnUrl