Я пытаюсь передать пользовательский параметр в returnURL, используемый на странице входа в систему IdentityServer 4 от angular oidc-client.
На основе параметра, который я получаю от returnURL, я хочу обойти сайт входа и перенаправитьих в ВПЛ. Я собираюсь добавить параметр на определенную страницу с углового уровня, и оттуда я хочу перенаправить для входа в систему.
Ниже ссылки говорят о них, но те, за которыми я не могу следовать. Ребята, пожалуйста, помогите. Заранее спасибо.
Передача пользовательского параметра в returnUrl, используемый на странице входа в систему Identity Server 4
https://github.com/IdentityServer/IdentityServer4/issues/909
C # AccountController.cs
public async Task<IActionResult> Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
var vm = await _account.BuildLoginViewModelAsync(returnUrl);
if (vm.IsExternalLoginOnly)
return ExternalLogin(vm.ExternalProviders.First().AuthenticationScheme, returnUrl);
return View(vm);
}
Angular auth.service.ts
const settings: any = {
authority: environment.oauthUrl,
client_id: 'website',
redirect_uri: `${environment.applicationUrl}/auth.html`,
post_logout_redirect_uri: `${environment.applicationUrl}`,
response_type: 'id_token token',
scope: 'openid profile email profile nucleus',
silent_redirect_uri: `${environment.applicationUrl}/silent-renew.html`,
automaticSilentRenew: true,
monitorSession: true,
checkSessionInterval: 2000,
revokeAccessTokenOnSignout: true,
filterProtocolClaims: true,
loadUserInfo: true,
changePasswordUrl: `${environment.oauthUrl}/Manage/ChangePassword?returnUrl=${environment.applicationUrl}`
};
Я ожидаю параметр от returnurl и добавляю подобное условие в метод Login для AccountController.cs.
if (vm.IsExternalLoginOnly || returnUrl.Contains("customparameter"))