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

时间:2018-03-01 15:21:04

标签: c# asp.net identityserver3

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

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

2 个答案:

答案 0 :(得分:1)

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

您需要做的是在PreAuthenticateAsync

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

修改

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

AuthenticateLocalAsync中的

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

答案 1 :(得分:0)

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