在本地帐户注册表单中,displayName
属性不是必填字段,我们不希望将其设为必填字段。
但是当用户没有为此提供任何值时,它将存储unknown
值,因为它设置为策略中的值。
<PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
我想在保存配置文件而不是givenName
时将unknown
属性值设置为默认值。
我尝试过如下,但没有帮助
<PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="{givenName}" />
<PersistedClaim ClaimTypeReferenceId="displayName"
PartnerClaimType="givenName" DefaultValue="unknown" />
答案 0 :(得分:0)
我从来没有这样做过,但我相信这是我们可以使用ClaimsTransformations的地方。它并没有真正记录下来,所以我无法指出你的方向。
借用SO answer,我相信你可以这样做:
<ClaimsTransformation Id="CreateDisplayNameFromGivenName" TransformationMethod="FormatStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="{0}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="givenName" />
</OutputClaims>
</ClaimsTransformation>
然后,您需要在您的TechnicalProfile中调用您的ClaimsTransformation。
<TechnicalProfile Id="LocalAccount-Registration-GivenName">
<DisplayName>Hello World Account</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.localaccount.registration</Item>
<Item Key="IpAddressClaimReferenceId">IpAddress</Item>
<Item Key="language.button_continue">Create</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="TokenSigningKeyContainer" />
</CryptographicKeys>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CreateDisplayNameFromGivenName" />
</InputClaimsTransformations>
<InputClaims>
...
</InputClaims>
<OutputClaims>
...
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="AzureActiveDirectoryStore-WriteUserByEmail-ThrowIfExists" />
</ValidationTechnicalProfiles>
<UseTechnicalProfileForSessionManagement ReferenceId="SSOSession-AzureActiveDirectory" />
</TechnicalProfile>
答案 1 :(得分:-2)
我注意到这一点,但我想你试试这个 &#34;将Name列属性更改为默认值&#34; 你这样做是
myTextView.setText(getString(R.string.res_from_core_module));