从AuthenticateLocalAsync重新连接到外部提供程序

问题描述 投票:0回答:2

是否有可能在AuthenticateLocalAsync方法中从自定义用户服务重定向到外部提供程序(在我的情况下:AAD)?

外部提供商取决于本地用户。

c# asp.net identityserver3
2个回答
1
投票

AuthenticateLocalAsync将在用户提供用户名和密码后执行。

您需要做的是在PreAuthenticateAsync中设置外部身份提供程序

Task PreAuthenticateAsync(PreAuthenticationContext context)
{
    context.SignInMessage.IdP = "<EXTERNAL IDENTITY PROVIDER NAME>";
    return Task.FromResult(0);
}

编辑

如果您需要首先使用用户名和密码进行身份验证,然后使用外部身份提供程序,我猜您应该使用相同的机制进行部分登录。

AuthenticateLocalAsync你应该使用this constructor方法来创建AuthenticateResult。您设置了重定向URL,并从那里调用外部身份提供商的挑战


0
投票

我更改了用户登录策略。现在,用户应该在登录页面上选择他的帐户提供商。一切都按预期工作

© www.soinside.com 2019 - 2024. All rights reserved.