Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
В этой статье приведены примеры использования преобразований утверждений даты схемы Identity Experience Framework в Azure Active Directory B2C (Azure AD B2C). Дополнительные сведения см. в статье о преобразовании утверждений.
AssertDateTimeGreaterThan
Утверждает, что одна дата позже второй даты. Определяет, больше ли rightOperand число leftOperand. Если да, вызывает исключение. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
| Элемент | TransformationClaimType (Тип утверждения) | Тип данных | Примечания. |
|---|---|---|---|
| InputClaim (Утверждение входа) | leftOperand | струна | Тип первого утверждения, который должен быть позже второго утверждения. |
| InputClaim (Утверждение входа) | rightОперанд | струна | Тип второго утверждения, который должен быть выше первого утверждения. |
| ПараметрВвода | AssertIfEqualTo | булевый | Указывает, должно ли это утверждение вызывать ошибку, если левый операнд равен правому операнду. Возможные значения: true (по умолчанию) или false. |
| ПараметрВвода | AssertIfRightOperandIsNotPresent | булевый | Указывает, следует ли передавать это утверждение, если правый операнд отсутствует. |
| ПараметрВвода | TreatAsEqualIfWithinMillсекунд | инт | Указывает количество миллисекунда, которое позволяет между двумя датами учитывать время равное (например, для учета отклонений часов). |
Преобразование утверждений AssertDateTimeIsGreaterThan всегда выполняется из технического профиля проверки , вызываемого самозаверяемым техническим профилем. Метаданные технического профиля DateTimeGreaterThan управляют сообщением об ошибке, которое технический профиль представляет пользователю. Сообщения об ошибках можно локализовать.
Пример AssertDateTimeIsGreaterThan
В следующем примере сравнивается currentDateTime утверждение с утверждением approvedDateTime . Ошибка возникает, если currentDateTime она позже approvedDateTime. Преобразование обрабатывает значения как равные, если они находятся в пределах 5 минут (30000 миллисекундах). Если значения равны, так как AssertIfEqualTo задано значение false, это не приведет к ошибке.
<ClaimsTransformation Id="AssertApprovedDateTimeLaterThanCurrentDateTime" TransformationMethod="AssertDateTimeIsGreaterThan">
<InputClaims>
<InputClaim ClaimTypeReferenceId="approvedDateTime" TransformationClaimType="leftOperand" />
<InputClaim ClaimTypeReferenceId="currentDateTime" TransformationClaimType="rightOperand" />
</InputClaims>
<InputParameters>
<InputParameter Id="AssertIfEqualTo" DataType="boolean" Value="false" />
<InputParameter Id="AssertIfRightOperandIsNotPresent" DataType="boolean" Value="true" />
<InputParameter Id="TreatAsEqualIfWithinMillseconds" DataType="int" Value="300000" />
</InputParameters>
</ClaimsTransformation>
Замечание
В приведенном выше примере, если удалить входной AssertIfEqualTo параметр и currentDateTime равноapprovedDateTime, будет возникать ошибка. Значение AssertIfEqualTo по умолчанию — true.
- Входные утверждения:
- левыйОперанд: 2022-01-01T15:00:00
- rightОперанд: 2022-01-22T15:00:00
- Входные параметры:
- AssertIfEqualTo: false
- AssertIfRightOperandIsNotPresent: истина
- TreatAsEqualIfWithinMillseconds: 300000 (30 секунд)
- Результат: возникла ошибка.
Вызов преобразования утверждений
Example-AssertDates Следующий технический профиль проверки вызывает преобразование утвержденийAssertApprovedDateTimeLaterThanCurrentDateTime.
<TechnicalProfile Id="Example-AssertDates">
<DisplayName>Unit test</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertDates" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Самозаверяемый технический профиль вызывает технический профиль проверки Example-AssertDates .
<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
<DisplayName>User ID signup</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.selfasserted</Item>
<Item Key="DateTimeGreaterThan">Custom error message if the provided right operand is greater than the right operand.</Item>
</Metadata>
...
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="ClaimsTransformation-AssertDateTimeIsGreaterThan" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
ConvertDateTimeToDateClaim
Преобразует тип утверждения в DateTimeDate тип утверждения. Преобразование утверждений удаляет формат времени из даты. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
| Элемент | TransformationClaimType (Тип утверждения) | Тип данных | Примечания. |
|---|---|---|---|
| InputClaim (Утверждение входа) | InputClaim | дата и время | Тип утверждения, который необходимо преобразовать. |
| outputClaim | outputClaim | дата | Тип утверждения, который создается после вызова этого преобразования утверждений. |
Пример ConvertDateTimeToDateClaim
В следующем примере показано преобразование утверждения systemDateTime (тип данных dateTime) в другое утверждение systemDate (тип данных date).
<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Входные утверждения:
- Утверждение о вводе: 2022-01-03T11:34:22.00000000Z
- Выходные утверждения:
- выходЗаявка: 2022-01-03
ConvertDateToDateTimeClaim
Преобразует тип утверждения в DateDateTime тип утверждения. Преобразование утверждений преобразует формат времени и добавляет 12:00:00 в дату. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
| Элемент | TransformationClaimType (Тип утверждения) | Тип данных | Примечания. |
|---|---|---|---|
| InputClaim (Утверждение входа) | InputClaim | дата | Тип утверждения, который необходимо преобразовать. |
| outputClaim | outputClaim | дата и время | Тип утверждения, который создается после вызова этого преобразования утверждений. |
Пример ConvertDateToDateTimeClaim
В следующем примере показано преобразование утверждения dateOfBirth (тип данных даты) в другое утверждение dateOfBirthWithTime (тип данных dateTime).
<ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Входные утверждения:
- вводЗаявка: 2022-01-03
- Выходные утверждения:
- выходУтверждение: 2022-01-03T00:00:00.0000000Z
DateTimeComparison (Сравнение датыTime)
Сравнивает две даты и определяет, является ли первая дата более поздней, более ранней или равной другой. Результатом является новое логическое утверждение со значением true или false. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
| Элемент | TransformationClaimType (Тип утверждения) | Тип данных | Примечания. |
|---|---|---|---|
| InputClaim (Утверждение входа) | firstDateTime | дата и время | Первая дата для сравнения того, является ли она более поздней, более ранней или равной второй дате. При значении NULL возникает исключение. |
| InputClaim (Утверждение входа) | secondDateTime | дата и время | Вторая дата сравнения. Значение NULL рассматривается как текущая дата и время. |
| ПараметрВвода | timeSpanInSeconds | инт | Таймпан, добавляемый к первой дате. Возможные значения: диапазон от отрицательных –2 147 483 648 до положительных 2 147 483 647. |
| ПараметрВвода | оператор | струна | Одно из следующих значений: same, later thanили earlier than. |
| outputClaim | результат | булевый | Утверждение, которое создается после вызова этого преобразования утверждений. |
Пример DateTimeComparison
Используйте это преобразование утверждений, чтобы определить, является ли первая дата плюс timeSpanInSeconds параметр более поздним, более ранним или равным другому. В следующем примере показано, что первая дата (2022-01-01T00:00:00) плюс 90 дней позже второй даты (2022-03-16T00:00:00:00).
<ClaimsTransformation Id="CompareLastTOSAcceptedWithCurrentDateTime" TransformationMethod="DateTimeComparison">
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_LastTOSAccepted" TransformationClaimType="secondDateTime" />
<InputClaim ClaimTypeReferenceId="currentDateTime" TransformationClaimType="firstDateTime" />
</InputClaims>
<InputParameters>
<InputParameter Id="operator" DataType="string" Value="later than" />
<InputParameter Id="timeSpanInSeconds" DataType="int" Value="7776000" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="result" />
</OutputClaims>
</ClaimsTransformation>
- Входные утверждения:
- firstDateTime: 2022-01-01T00:00:00.100000Z
- secondDateTime: 2022-03-16T00:00:00.100000Z
- Входные параметры:
- оператор: позже
- timeSpanInSeconds: 7776000 (90 дней)
- Выходные утверждения:
- результат: true
IsTermsOfUseConsentRequired
Определите, является ли dateTime тип утверждения более ранним или больше определенной даты. Результатом является новое логическое утверждение со значением true или false. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
| Товар | TransformationClaimType (Тип утверждения) | Тип данных | Примечания. |
|---|---|---|---|
| InputClaim (Утверждение входа) | termsOfUseConsentDateTime | дата и время | Тип dateTime утверждения, который проверяет, является ли он более ранним или более поздним, чем входной termsOfUseTextUpdateDateTime параметр. Неопределенное значение возвращает true результат. |
| ПараметрВвода | termsOfUseTextUpdateDateTime | дата и время | Тип dateTime утверждения для проверки того, является ли оно более ранним или более поздним, чем входное termsOfUseConsentDateTime утверждение. Временная часть даты является необязательной. |
| outputClaim | результат | булевый | Тип утверждения, созданный после вызова этого преобразования утверждений. |
Используйте это преобразование утверждений, чтобы определить, является ли dateTime тип утверждения более ранним или больше определенной даты. Например, проверьте, предоставил ли пользователь согласие на последнюю версию условий использования (TOU) или условий обслуживания. Чтобы проверить последний раз, когда пользователь согласился, сохраните последний раз, когда пользователь принял toU в атрибуте расширения. При изменении формулировки toU обновите termsOfUseTextUpdateDateTime входной параметр с временем изменения. Затем вызовите это преобразование утверждений, чтобы сравнить даты. Если преобразование утверждений возвращается true, termsOfUseConsentDateTime значение выше termsOfUseTextUpdateDateTime значения, и вы можете попросить пользователя принять обновленный toU.
<ClaimsTransformation Id="IsTermsOfUseConsentRequired" TransformationMethod="IsTermsOfUseConsentRequired">
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_termsOfUseConsentDateTime" TransformationClaimType="termsOfUseConsentDateTime" />
</InputClaims>
<InputParameters>
<InputParameter Id="termsOfUseTextUpdateDateTime" DataType="dateTime" Value="2021-11-15T00:00:00" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="result" />
</OutputClaims>
</ClaimsTransformation>
Пример IsTermsOfUseConsentRequired
- Входные утверждения:
- termsOfUseConsentDateTime: 2020-03-09T09:15:00
- Входные параметры:
- termsOfUseTextUpdateDateTime: 2021-11-15
- Выходные утверждения:
- результат: true
ПолучитьТекущуюДатуВремя
Получите текущую дату и время в формате UTC и добавьте значение в тип утверждения. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
| Элемент | TransformationClaimType (Тип утверждения) | Тип данных | Примечания. |
|---|---|---|---|
| outputClaim | currentDateTime | дата и время | Тип утверждения, который создается после вызова этого преобразования утверждений. |
Пример GetCurrentDateTime
В следующем примере показано, как получить текущие данные и время:
<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
</OutputClaims>
</ClaimsTransformation>
- Выходные утверждения:
- currentDateTime: 2022-01-14T11:40:35.00000000Z
Дальнейшие шаги
- Дополнительные примеры преобразования утверждений можно найти в репозитории сообщества Azure AD B2C в GitHub.