有关文化的问题:RFC5646和ContentDefinitions

时间:2019-04-05 14:58:49

标签: azure-ad-b2c identity-experience-framework

{Culture:RFC5646}返回两个不同的英语值。当前,当用户使用ProfileEdit或SignUpSignIn时,他们将返回不同的值。

例如:

ProfileEdit返回:en-us
SignUpSignIn返回:zh_CN

我正在ContentDefinitions的LoadUri中使用它,以便我们可以让用户重定向到自定义和翻译的html页面。但是,使用两个返回值,我必须维护两个目录“ / en”和“ / en-us”,而不是一个。

我已验证所有父级和子级策略ContentDefinition的LoadURI都使用{Culture:RFC5646}。

我们已经测试了来自不同位置的多个用户。

我研究了Azure B2C IEF本地化文档,该文档说明了如何确定语言,但并未阐明为什么使用同一浏览器的同一用户将为{Culture:RFC5646}返回不同的值

这是SignUpSignIn的内容定义加载Uri

<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 :(得分:0)

我发现问题是由不同的策略继承了不同的基本策略引起的。一旦让他们继承相同的基本策略,它就会按预期工作。