是否有可能在AuthenticateLocalAsync
方法中从自定义用户服务重定向到外部提供程序(在我的情况下:AAD)?
外部提供商取决于本地用户。
AuthenticateLocalAsync
将在用户提供用户名和密码后执行。
您需要做的是在PreAuthenticateAsync
中设置外部身份提供程序
Task PreAuthenticateAsync(PreAuthenticationContext context)
{
context.SignInMessage.IdP = "<EXTERNAL IDENTITY PROVIDER NAME>";
return Task.FromResult(0);
}
编辑
如果您需要首先使用用户名和密码进行身份验证,然后使用外部身份提供程序,我猜您应该使用相同的机制进行部分登录。
在AuthenticateLocalAsync
你应该使用this constructor方法来创建AuthenticateResult
。您设置了重定向URL,并从那里调用外部身份提供商的挑战
我更改了用户登录策略。现在,用户应该在登录页面上选择他的帐户提供商。一切都按预期工作