0

我目前正在实施此示例以在用户注册期间使用休息 API。

基本思路是 API 抛出 409 Conflict 错误来中断注册。

// Can I return a special "StringId" or something here for localization?
return new ConflictObjectResult(new B2CResponseModel($"A verification email sent to you. Please open your mail box and click on the link. If you didn't receive the email, please click on the 'Send verification email' button.", HttpStatusCode.Conflict));

我想向用户显示一条本地化为他们当前语言的消息。我更愿意在自定义策略中进行本地化,但我也接受 API 中的解决方案(需要为此获取用户语言)。

有没有办法进行这种本地化?就像返回一个StringId通过 API 并在策略中使用它?

我也在考虑不从 API 返回错误,而是在新屏幕中显示消息(例如如何在后续编排步骤中显示从自定义 REST API 端点返回的错误?)。然而,这方面的本地化选项也让我望而却步。

4

2 回答 2

0

希望这与此相似

请参阅Jas Suri的答案。将本地化参数传递给 API 并返回本地化消息,或者可以返回错误代码并基于使用策略本身显示翻译的消息。

于 2020-01-21T16:19:46.020 回答
0

如果有人正在寻找将用户的语言环境发送到 REST API 的方法:

https://docs.microsoft.com/nb-no/azure/active-directory-b2c/claim-resolver-overview

        <TechnicalProfile Id="REST-API-SendVerificationEmail">
          <DisplayName>Sign-Up send link</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="ServiceUrl">https://xxxx</Item>
            <Item Key="AuthenticationType">None</Item>
            <Item Key="SendClaimsIn">Body</Item>
          </Metadata>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" />
            <InputClaim ClaimTypeReferenceId="userLanguage" DefaultValue="{Culture:LanguageName}" />
            <InputClaim ClaimTypeReferenceId="policyId" PartnerClaimType="policy" DefaultValue="{Policy:PolicyId}" />
            <InputClaim ClaimTypeReferenceId="scope" DefaultValue="{OIDC:scope}" />
            <InputClaim ClaimTypeReferenceId="clientId" DefaultValue="{OIDC:ClientId}" />
          </InputClaims>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
        </TechnicalProfile>
于 2020-01-22T12:56:14.933 回答