共用方式為


StringCollection 宣告轉換

本文提供在 Azure Active Directory B2C (Azure AD B2C) 中使用身分識別體驗架構架構的字串集合宣告轉換的範例。 如需詳細資訊,請參閱 宣告轉換

AddItemToString集合

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

元素 TransformationClaimType 數據類型 註釋
InputClaim (輸入宣告) 項目 字串 要新增至輸出宣告的 ClaimType。
InputClaim (輸入宣告) 收藏 stringCollection 要新增至輸出宣告的字串集合。 如果集合包含專案,宣告轉換會複製專案,並將專案新增至輸出集合宣告的結尾。
輸出聲明 收藏 stringCollection 叫用此宣告轉換之後所產生的 ClaimType,其值在輸入宣告中指定。

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

AddItemToStringCollection 的範例

下列宣告轉換會將 電子郵件 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>
  • 輸入宣告:
    • 收藏:[“someone@outlook.com”]
    • 項目:“admin@contoso.com”
  • 輸出宣告:
    • 收藏: [“someone@outlook.com”, “admin@contoso.com”]

AddParameterToString集合

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

元素 TransformationClaimType 數據類型 註釋
InputClaim (輸入宣告) 收藏 stringCollection 要新增至輸出宣告的字串集合。 如果集合包含專案,宣告轉換會複製專案,並將專案新增至輸出集合宣告的結尾。
輸入參數 項目 字串 要新增至輸出宣告的值。
輸出聲明 收藏 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>
  • 輸入宣告:
    • 收藏:[“someone@outlook.com”]
  • 輸入參數
    • 項目:“admin@contoso.com”
  • 輸出宣告:
    • 收藏: [“someone@outlook.com”, “admin@contoso.com”]

GetSingleItemFromStringCollection

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

元素 TransformationClaimType 數據類型 註釋
InputClaim (輸入宣告) 收藏 stringCollection 宣告轉換用來取得專案的 ClaimTypes。
輸出聲明 extracted項目 字串 在此 ClaimsTransformation 之後產生的 ClaimTypes。 集合中的第一項。

GetSingleItemFromStringCollection 的範例

下列範例會讀取 otherMails 宣告,並將第一個專案傳回 電子郵件宣告 中。

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

StringCollection包含

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

元素 TransformationClaimType 數據類型 註釋
InputClaim (輸入宣告) inputClaim stringCollection 要搜查的索賠。
輸入參數 項目 字串 要搜尋的值。
輸入參數 ignoreCase 字串 指定此比較是否應該忽略所比較字串的案例。
輸出聲明 outputClaim 布爾值 在此 ClaimsTransformation 之後產生的 ClaimType。 如果集合包含這類字串,則為布林值指示器

StringCollectionContains 的範例

下列範例會檢查 stringCollection 宣告類型是否 roles 包含 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: [“讀者”, “作者”, “管理員”]
  • 輸入參數:
    • 項目:“管理員”
    • ignoreCase: “true”
  • 輸出宣告:
    • outputClaim: “true”

StringCollectionContains宣告

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

元素 TransformationClaimType 數據類型 註釋
InputClaim (輸入宣告) 收藏 stringCollection 要搜查的索賠。
InputClaim (輸入宣告) 項目 字串 包含要搜尋之值的宣告類型。
輸入參數 ignoreCase 字串 指定此比較是否應該忽略所比較字串的案例。
輸出聲明 outputClaim 布爾值 在此 ClaimsTransformation 之後產生的 ClaimType。 如果集合包含這類字串,則為布林值指示器

StringCollectionContainsClaim 的範例

下列範例會檢查 stringCollection 宣告類型是否 roles 包含宣告類型的值 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> 
  • 輸入宣告:
    • 集合:[“讀者”、“作者”、“管理員”]
    • 項目:“管理員”
  • 輸入參數:
    • ignoreCase: “true”
  • 輸出宣告:
    • outputClaim: “true”

後續步驟