Я добавил общую локализацию в Identity Server 4 Core 2.2 (https://damienbod.com/2017/11/01/shared-localization-in-asp-net-core-mvc/comment-page-1/#comment-21394).
https://my.domain.com/Account/Register?culure=xx-YY&ui-culture=xx-YY работает.
Теперь, как я могу передать параметры культура и iu-culture моему IdendityServer с OidClient LoginAsync () в собственном приложении?
var options = new OidcClientOptions { Authority = "https://my.domain.com", ClientId = "hybrid", ClientSecret = "secret", Scope = "openid profile api offline_access", ResponseMode = OidcClientOptions.AuthorizeResponseMode.Redirect, RedirectUri = "myscheme://signin-oidc", PostLogoutRedirectUri = "myscheme://signout-callback-oidc", Browser = new PlatformWebView() }; _client = new OidcClient(options); var result = await _client.LoginAsync(new LoginRequest());
Спасибо.
Один из вариантов - добавить поддержку необязательного параметра OIDC, который называется ui_locales.У Дэмиена Бода также есть сообщение на эту тему: identityserver4-localization-using-ui_locales-and-the-query-string
Чтобы передать ui_locales от вашего клиента на сервер идентификации, который вы можете использоватьFrontChannelExtraParameters свойство LoginRequest.
FrontChannelExtraParameters
LoginRequest
Параметры, добавленные к FrontChannelExtraParameters LoginRequest, будут добавлены в конец URL авторизации.
Если вы измените последнийСтрока вашего кода для этого:
var result = await _client.LoginAsync( new LoginRequest{ FrontChannelExtraParameters = new { ui_locales = "en-US" }} );
Запрос на авторизацию должен выглядеть примерно так:
"https://demo.identityserver.io/connect/authorize?response_type=code&nonce=20c640......&ui_locales=en-US"