Вопрос о культуре: RFC5646 и определения содержания - PullRequest
0 голосов
/ 05 апреля 2019

{Culture: RFC5646} возвращает два разных значения для английского языка.В настоящее время, когда пользователь использует ProfileEdit или SignUpSignIn, они возвращают разные значения.

Например:

ProfileEdit возвращает: en-us
SignUpSignIn возвращает: en

Я использую это в LoadUri ContentDefinitions, чтобы у нас был пользовательперенаправлен на настроенную и переведенную HTML-страницу.Тем не менее, с двумя возвращаемыми значениями мне приходится поддерживать два каталога "/ en" и "/ en-us" вместо одного.

Я проверил, что все родительские и дочерние политики LoadURI ContentDefinition используют {Культура: RFC5646}.

Мы протестировали несколько пользователей из разных мест.

Я исследовал документы локализации Azure B2C IEF, и в нем дается ссылка на то, как определяется язык, но он не проливает свет на то, почемутот же пользователь с тем же браузером будет возвращать разные значения для {Culture: RFC5646}

Вот URI загрузки определения контента для SignUpSignIn

<ContentDefinition Id="api.localaccountsignup">
<LoadUri>https://*****/b2c/IEF/{Culture:RFC5646}/selfasserted.html</LoadUri>        <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.1.0</DataUri>
        <Metadata>
          <Item Key="DisplayName">Local account sign up page</Item>
        </Metadata>
</ContentDefinition>

А вот код для редактирования профиля

<ContentDefinition Id="api.selfasserted.profileupdate">
<LoadUri>https://*****/b2c/IEF/{Culture:RFC5646}/updateprofile.html</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.1.0</DataUri>
        <Metadata>
          <Item Key="DisplayName">Collect information from user page</Item>
        </Metadata>
</ContentDefinition>

Я хотел бы, чтобы {Culture: RFC5646} возвращал одно и то же значение для того же пользователя.Например, SignUpSignIn возвращает «en-us», а ProfileEdit возвращает «en-us» таким образом, что я могу поддерживать один каталог вместо двух.

1 Ответ

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

Я обнаружил, что проблема была вызвана тем, что разные политики наследовали разные базовые политики. После того, как они унаследовали одну и ту же базовую политику, она работает как задумано.

...