我正在使用IdentityServer4示例应用程序作为SustainSys.SAML netstandard分支here的指南。
我遇到的唯一问题是,当我在https://stubidp.sustainsys.com登录并重定向回我的IdentityServer4 ExternalLoginCallback()方法时,我丢失了原始客户端重定向(这是原始授权的一部分)重定向网址。当此代码返回时:
var result = await HttpContext.AuthenticateAsync(IdentityServerConstants.ExternalCookieAuthenticationScheme);
Properties.Items中的returnUrl和值是相同的,我的原始redirectUrl通过IdentityServer / authorize端点返回我的客户端应用程序(一个Angular应用程序)。
我尝试了示例应用程序,它的行为方式相同。
答案 0 :(得分:1)
原来我将ExternalProvider的AuthenticationScheme设置为不正确的值。 在我在IdP登录过程中调用的BuildLoginViewModelAsync()方法中使用了错误的值:
return new LoginViewModel
{
EnableLocalLogin = false,
ReturnUrl = returnUrl,
Username = context.LoginHint,
ExternalProviders = new[] { new ExternalProvider { AuthenticationScheme = **context.IdP** } }
};