0

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

例如:

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

我在 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”,这样我就可以维护一个目录而不是两个目录。

4

1 回答 1

0

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

于 2019-04-06T21:57:48.893 回答