Поделиться через


Преобразования утверждений StringCollection

В этой статье приведены примеры использования преобразований утверждений коллекции строк схемы Identity Experience Framework в Azure Active Directory B2C (Azure AD B2C). Дополнительные сведения см. в статье о преобразовании утверждений.

AddItemToStringCollection

Добавляет строковое утверждение в новое утверждение уникальных значений stringCollection. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) элемент струна Свойство ClaimType, добавляемое в выходное утверждение.
InputClaim (Утверждение входа) коллекция stringCollection Коллекция строк, добавляемая в выходное утверждение. Если коллекция содержит элементы, преобразование утверждений копирует элементы и добавляет элемент в конец утверждения выходной коллекции.
outputClaim коллекция stringCollection Тип утверждения, созданный после вызова этого преобразования утверждений, со значением, указанным в входном утверждении.

Используйте это преобразование утверждений, чтобы добавить строку в новую или существующую строкуCollection. Он обычно используется в техническом профиле AAD-UserWriteUsingAlternativeSecurityId . Перед созданием новой учетной записи социальной сети преобразование утверждений CreateOtherMailsFromEmail считывает ClaimType и добавляет значение в другой тип утвержденийMails 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>
  • Входные утверждения:
    • коллекция: ["someone@outlook.com]
    • элемент: "admin@contoso.com"
  • Выходные утверждения:
    • collection: ["someone@outlook.com, "admin@contoso.com"]

AddParameterToStringCollection

Добавляет строковый параметр в новое утверждение stringCollection уникальных значений. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) коллекция stringCollection Коллекция строк, добавляемая в выходное утверждение. Если коллекция содержит элементы, преобразование утверждений копирует элементы и добавляет элемент в конец утверждения выходной коллекции.
ПараметрВвода элемент струна Значение, которое необходимо добавить в выходное утверждение.
outputClaim коллекция stringCollection Тип утверждения, созданный после вызова этого преобразования утверждений, со значением, указанным в входном параметре.

Пример 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"
  • Выходные утверждения:
    • collection: ["someone@outlook.com, "admin@contoso.com"]

GetSingleItemFromStringCollection

Возвращает первый элемент из предоставленной коллекции строк. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) коллекция stringCollection УтвержденияTypes, используемые преобразованием утверждений для получения элемента.
outputClaim extractedItem струна УтвержденияType, созданные после вызова этой утвержденияTransformation. Первый элемент в коллекции.

Пример GetSingleItemFromStringCollection

В следующем примере считывается утверждение otherMails и возвращается первый элемент в утверждение электронной почты .

<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 Утверждение для поиска.
ПараметрВвода элемент струна Значение, которое нужно найти.
ПараметрВвода ignoreCase струна Указывает, следует ли в этом сравнении игнорировать регистр сравниваемых строк.
outputClaim outputClaim булевый Тип утверждения, созданный после вызова этой утвержденияTransformation. Логический индикатор, если коллекция содержит такую строку

Пример StringCollectionContains

В следующем примере проверяется, содержит ли roles тип утверждения stringCollection значение администратора.

<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"]
  • Входные параметры:
    • элемент: "Admin"
    • ignoreCase: "true"
  • Выходные утверждения:
    • outputClaim: "true"

StringCollectionContainsClaim

Проверяет, содержит ли тип утверждения StringCollection значение утверждения. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) коллекция stringCollection Утверждение для поиска.
InputClaim (Утверждение входа) элемент струна Тип утверждения, содержащий значение для поиска.
ПараметрВвода ignoreCase струна Указывает, следует ли в этом сравнении игнорировать регистр сравниваемых строк.
outputClaim outputClaim булевый Тип утверждения, созданный после вызова этой утвержденияTransformation. Логический индикатор, если коллекция содержит такую строку

Пример 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"]
    • элемент: "Admin"
  • Входные параметры:
    • ignoreCase: "true"
  • Выходные утверждения:
    • outputClaim: "true"

Дальнейшие шаги