Локализация в Identity Server - PullRequest
       22

Локализация в Identity Server

1 голос
/ 07 апреля 2019

Я добавил общую локализацию в 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());

Спасибо.

1 Ответ

0 голосов
/ 07 апреля 2019

Один из вариантов - добавить поддержку необязательного параметра OIDC, который называется ui_locales.У Дэмиена Бода также есть сообщение на эту тему: identityserver4-localization-using-ui_locales-and-the-query-string

Чтобы передать ui_locales от вашего клиента на сервер идентификации, который вы можете использовать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" 
...