Пользовательские политики: предотвращение неподдерживаемых локалей, даже если язык передается непосредственно в поток пользователя - PullRequest
0 голосов
/ 06 февраля 2020

Мы начали использовать некоторые пользовательские локализованные файлы html, чтобы показать некоторые локализованные заголовки и т. Д. c. нашим пользователям.

Согласно этой статье , мы только что загрузили пару html файлов для рендеринга.

https://contoso.blob.core.windows.net/{Culture:LanguageName}/myHTML/unified.html

Однако, когда поток пользователя началось с явного набора языковых стандартов (например, &lang=es или UI-locales=es-ES), и у нас нет файла для этого языкового стандарта , мы получаем страницу с ошибкой.

AADB2C90002 : Ресурс CORS 'https://anyhelpappreciated.blob.core.windows.net/es/myHTML/unified.html' возвратил 404. Не найдено.

Мы настроили SupportedLanguages, но это, похоже, ничего не делает, если локаль прошло явно. Я не хочу полагаться на то, что приложения не передают мне этот параметр.

    <Localization Enabled="true">
      <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
        <SupportedLanguage>en</SupportedLanguage>
        <SupportedLanguage>de</SupportedLanguage>
        <SupportedLanguage>it</SupportedLanguage>
      </SupportedLanguages>
...

Есть ли способ предотвратить это?

1 Ответ

0 голосов
/ 07 марта 2020

Это поведение является "разработанным" и не может быть изменено.

https://github.com/MicrosoftDocs/azure-docs/issues/47654

Для локализации вы можете предоставить параметр строки запроса, ui_locales, из вашего приложения. Когда вы звоните в Azure AD B2 C, ваша страница переводится в указанную вами локаль. Этот тип конфигурации дает вам полный контроль над языками в потоке пользователя и игнорирует языковые настройки браузера клиента. Вам может не понадобиться такой уровень контроля над языками, которые видит ваш клиент. Если вы не укажете параметр ui_locales, опыт клиента определяется настройками браузера. Вы по-прежнему можете контролировать, на какие языки переводится пользовательский поток, добавляя его в качестве поддерживаемого языка. Если браузер клиента настроен на отображение языка, который вы не хотите поддерживать, вместо этого будет показан язык, выбранный вами по умолчанию в поддерживаемых культурах.

Средство распознавания утверждений {Culture:RFC5646} работает в так же. Значение Если браузер клиента настроен на отображение языка, который вы не хотите поддерживать, то язык, выбранный по умолчанию в поддерживаемых культурах, вместо этого отправляется на страницу HTML.

Только случай, когда неподдерживаемый ui_locales будет отправлен на страницу HTML, когда приложение пропустит пропущенный ui_locales в строке запроса. В этом случае мы считаем это решением приложения и разрешаем ему переопределять конфигурацию поддерживаемых культур.

Итак, убедитесь, что ваше приложение отправляет только поддерживаемый язык в параметре строки запроса ui_locales.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...