从 Authenticate Local Async 重定向到外部提供者

Redriect to external provider from AuthenticateLocalAsync

是否可以在 AuthenticateLocalAsync 方法中从自定义用户服务重定向到外部提供商(在我的例子中:AAD)?

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

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

您需要做的是在PreAuthenticateAsync

中设置外部身份提供者
Task PreAuthenticateAsync(PreAuthenticationContext context)
{
    context.SignInMessage.IdP = "<EXTERNAL IDENTITY PROVIDER NAME>";
    return Task.FromResult(0);
}

编辑

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

in AuthenticateLocalAsync 您应该使用 this constructor 方法来创建 AuthenticateResult。您设置重定向 url 并从那里调用外部身份提供者挑战

我更改了用户登录策略。现在,用户应该在登录页面上选择他的帐户提供商。一切正常