首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >identityserver4快速入门LoginViewModel IsExternalLogInOnly标志

identityserver4快速入门LoginViewModel IsExternalLogInOnly标志
EN

Stack Overflow用户
提问于 2017-07-13 23:37:38
回答 1查看 281关注 0票数 1

我正在使用具有多个外部授权(提供者)的Identityserver。我在这里尝试得到的场景是,我有一个客户端配置为"EnableLocalLogin“为false。我确实有多个外部提供商。快速入门中的"LoginViewModel.cs“中的以下代码行没有任何意义。

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

这是返回false,我没有被重定向到外部提供程序。是否应为ExternalProviders?.Count() >0

EN

回答 1

Stack Overflow用户

发布于 2017-07-17 23:32:33

在我看来,IsExternalLoginOnly的名字并不好。只有当您显示登录页面时才会调用它:

代码语言:javascript
复制
[HttpGet]        
public async Task<IActionResult> Login(string returnUrl)  
{           
    var vm = await _account.BuildLoginViewModelAsync(returnUrl);            
    if (vm.IsExternalLoginOnly)            
    {                   
        // only one option for logging in                
        return await ExternalLogin(vm.ExternalProviders.First().AuthenticationScheme, returnUrl); 
    }           
    return View(vm);        
}

它用于在用户没有选择的情况下直接重定向到提供商。

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

您仍然可以编写自己的登录代码,并尝试按照returnUrl自动执行此步骤

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45085362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档