共用方式為


StringCollection 宣告轉換

此文章提供在 Azure Active Directory B2C (Azure AD B2C) 中,使用 Identity Experience Framework 結構描述之字串集合宣告轉換的範例。 如需詳細資訊,請參閱宣告轉換

AddItemToStringCollection

將字串宣告新增至新的唯一值 stringCollection 宣告。 查看此宣告轉換的即時示範

元素 TransformationClaimType 資料類型 注意
InputClaim 元素 字串 要新增至輸出宣告的 ClaimType。
InputClaim collection stringCollection 要新增至輸出宣告的字串集合。 如果集合包含項目,宣告轉換就會複製項目,並將項目新增至輸出集合宣告的結尾。
OutputClaim collection stringCollection 叫用此宣告轉換之後產生的 ClaimType,並含有輸入參數中指定的值。

使用此宣告轉換來將字串新增至新的或現有的 stringCollection。 它通常用於 AAD-UserWriteUsingAlternativeSecurityId 技術設定檔。 建立新的社交帳戶之前,CreateOtherMailsFromEmail 宣告轉換會讀取 ClaimType,並將值新增至 otherMails ClaimType。

AddItemToStringCollection 範例

下列宣告轉換會將 email ClaimType 新增至 otherMails ClaimType。

<ClaimsTransformation Id="CreateOtherMailsFromEmail" TransformationMethod="AddItemToStringCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="item" />
    <InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>
  • 輸入宣告:
    • collection:["someone@outlook.com"]
    • item:"admin@contoso.com"
  • 輸出宣告:
    • collection["someone@outlook.com", "admin@contoso.com"]

AddParameterToStringCollection

將字串參數新增至新的唯一值 stringCollection 宣告。 查看此宣告轉換的即時示範

元素 TransformationClaimType 資料類型 注意
InputClaim collection stringCollection 要新增至輸出宣告的字串集合。 如果集合包含項目,宣告轉換就會複製項目,並將項目新增至輸出集合宣告的結尾。
InputParameter 元素 字串 要新增至輸出宣告的值。
OutputClaim collection stringCollection 叫用此宣告轉換之後所產生的 ClaimType,並含有輸入參數中指定的值。

AddParameterToStringCollection 範例

下列範例會將常數的電子郵件地址 (admin@contoso.com) 新增至 otherMails 宣告。

<ClaimsTransformation Id="SetCompanyEmail" TransformationMethod="AddParameterToStringCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="item" DataType="string" Value="admin@contoso.com" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>
  • 輸入宣告:
    • collection:["someone@outlook.com"]
  • 輸入參數
    • item:"admin@contoso.com"
  • 輸出宣告:
    • collection["someone@outlook.com", "admin@contoso.com"]

GetSingleItemFromStringCollection

從提供的字串集合中取得第一個項目。 查看此宣告轉換的即時示範

元素 TransformationClaimType 資料類型 注意
InputClaim collection stringCollection 宣告轉換用來取得項目的 ClaimType。
OutputClaim extractedItem 字串 叫用此 ClaimsTransformation 之後所產生的 ClaimType。 集合中的第一個項目。

GetSingleItemFromStringCollection 範例

下列範例會讀取 otherMails 宣告,並將第一個項目傳回到 email 宣告。

<ClaimsTransformation Id="CreateEmailFromOtherMails" TransformationMethod="GetSingleItemFromStringCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="extractedItem" />
  </OutputClaims>
</ClaimsTransformation>
  • 輸入宣告:
    • collection["someone@outlook.com", "someone@contoso.com"]
  • 輸出宣告:
    • extractedItem:"someone@outlook.com"

StringCollectionContains

檢查 StringCollection 宣告類型是否包含元素。 查看此宣告轉換的即時示範

元素 TransformationClaimType 資料類型 注意
InputClaim inputClaim stringCollection 要搜尋的宣告。
InputParameter item 字串 要搜尋的值。
InputParameter ignoreCase 字串 指定這個比較是否應忽略要比較之字串的大小寫。
OutputClaim outputClaim boolean 叫用此 ClaimsTransformation 之後所產生的 ClaimType。 如果集合包含此類字串,則為布林值指標

StringCollectionContains 範例

下列範例會檢查 roles stringCollection 宣告類型是否包含 admin 的值。

<ClaimsTransformation Id="IsAdmin" TransformationMethod="StringCollectionContains">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <InputParameters>
    <InputParameter  Id="item" DataType="string" Value="Admin"/>
    <InputParameter  Id="ignoreCase" DataType="string" Value="true"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>
  • 輸入宣告:
    • inputClaim:["reader", "author", "admin"]
  • 輸入參數:
    • item:"Admin"
    • ignoreCase:"true"
  • 輸出宣告:
    • outputClaim:"true"

StringCollectionContainsClaim

檢查 StringCollection 宣告類型是否包含宣告值。 查看此宣告轉換的即時示範

元素 TransformationClaimType 資料類型 注意
InputClaim collection stringCollection 要搜尋的宣告。
InputClaim item 字串 包含要搜尋之值的宣告類型。
InputParameter ignoreCase 字串 指定這個比較是否應忽略要比較之字串的大小寫。
OutputClaim outputClaim boolean 叫用此 ClaimsTransformation 之後所產生的 ClaimType。 如果集合包含此類字串,則為布林值指標

StringCollectionContainsClaim 範例

下列範例會檢查 roles stringCollection 宣告類型是否包含 role 宣告類型的值。

<ClaimsTransformation Id="HasRequiredRole" TransformationMethod="StringCollectionContainsClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="collection" />
    <InputClaim ClaimTypeReferenceId="role" TransformationClaimType="item" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="hasAccess" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation> 
  • 輸入宣告:
    • collection:["reader", "author", "admin"]
    • item:"Admin"
  • 輸入參數:
    • ignoreCase:"true"
  • 輸出宣告:
    • outputClaim:"true"

後續步驟