Freigeben über


Datumsansprüchetransformationen

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Dieser Artikel enthält Beispiele für die Verwendung der Datumsansprüchetransformationen des Identity Experience Framework-Schemas in Azure Active Directory B2C (Azure AD B2C). Weitere Informationen finden Sie unter Transformationen von Ansprüchen.

AssertDateTimeIsGreaterThan

Bestätigt, dass ein Datum später als ein zweites Datum ist. Bestimmt, ob die rightOperand größer als die leftOperand. Wenn ja, wird eine Ausnahme ausgelöst. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Hinweise
Eingabe-Behauptung leftOperand Schnur Der Typ des ersten Anspruchs, der später als der zweite Anspruch sein sollte.
Eingabe-Behauptung rightOperand Schnur Der Typ des zweiten Anspruchs, der vor dem ersten Anspruch liegt.
Eingabeparameter AssertIfEqualTo Boolescher Wert Gibt an, ob diese Assertion einen Fehler auslösen soll, wenn der linke Operand dem rechten Operanden entspricht. Mögliche Werte: true (Standard) oder false.
Eingabeparameter AssertIfRightOperandIsNotPresent Boolescher Wert Gibt an, ob diese Assertion übergeben werden soll, wenn der richtige Operand fehlt.
Eingabeparameter TreatAsEqualIfWithinMillseconds INT Gibt die Anzahl von Millisekunden an, die zwischen den beiden Datumsangaben zulässig sind, um die Zeit gleich zu berücksichtigen (z. B. um die Uhrneigung zu berücksichtigen).

Die AssertionDateTimeIsGreaterThan-Anspruchstransformation wird immer aus einem technischen Validierungsprofil ausgeführt, das von einem selbst bestätigten technischen Profil aufgerufen wird. Die DateTimeGreaterThan selbstbesetzten technischen Profilmetadaten steuern die Fehlermeldung, dass das technische Profil dem Benutzer präsentiert. Die Fehlermeldungen können lokalisiert werden.

Diagramme zeigen, wie die AssertionStringClaimsAreEqual-Anspruchstransformation verwendet wird.

Beispiel für AssertDateTimeIsGreaterThan

Im folgenden Beispiel wird der currentDateTime Anspruch mit dem approvedDateTime Anspruch verglichen. Ein Fehler wird ausgelöst, wenn currentDateTime er später als approvedDateTimeist. Die Transformation behandelt Werte gleich, wenn sie sich innerhalb von 5 Minuten (30000 Millisekunden) unterscheiden. Es wird kein Fehler ausgelöst, wenn die Werte gleich sind, da AssertIfEqualTo sie auf 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>

Hinweis

Wenn Sie im obigen Beispiel den AssertIfEqualTo Eingabeparameter entfernen und currentDateTime gleichapprovedDateTime sind, wird ein Fehler ausgelöst. Der AssertIfEqualTo Standardwert ist true.

  • Eingabeansprüche:
    • leftOperand: 2022-01-01T15:00:00
    • rightOperand: 2022-01-22T15:00:00
  • Eingabeparameter:
    • AssertIfEqualTo: falsch
    • AssertIfRightOperandIsNotPresent: wahr
    • TreatAsEqualIfWithinMillseconds: 300000 (30 Sekunden)
  • Ergebnis: Fehler wird ausgelöst.

Aufrufen der Forderungstransformation

Das folgende Example-AssertDates technische Überprüfungsprofil ruft die AssertApprovedDateTimeLaterThanCurrentDateTime Anspruchstransformation auf.

<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>

Das selbstbesetzte technische Profil ruft das validierungstechnische Example-AssertDates Profil auf.

<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

Konvertiert einen DateTime Anspruchstyp in einen Date Anspruchstyp. Die Anspruchstransformation entfernt das Zeitformat aus dem Datum. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Hinweise
Eingabe-Behauptung inputClaim Datum und Uhrzeit Der zu konvertierende Anspruchstyp.
OutputClaim (Ausgabeanspruch) outputClaim (Ausschreibung) Datum Dies ist der Anspruchstyp, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde.

Beispiel für ConvertDateTimeToDateClaim

Im folgenden Beispiel wird die Konvertierung des Anspruchs systemDateTime (dateTime-Datentyp) in einen anderen Anspruch systemDate (Datumsdatentyp) veranschaulicht.

<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Eingabeansprüche:
    • inputClaim: 2022-01-03T11:34:22.0000000Z
  • Ausgabeansprüche:
    • outputBehauptung: 03.01.2022

ConvertDateToDateTimeClaim

Konvertiert einen Date Anspruchstyp in einen DateTime Anspruchstyp. Die Anspruchstransformation konvertiert das Zeitformat und fügt dem Datum 12:00:00 Uhr hinzu. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Hinweise
Eingabe-Behauptung inputClaim Datum Der zu konvertierende Anspruchstyp.
OutputClaim (Ausgabeanspruch) outputClaim (Ausschreibung) Datum und Uhrzeit Dies ist der Anspruchstyp, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde.

Beispiel für ConvertDateToDateTimeClaim

Im folgenden Beispiel wird die Konvertierung des Anspruchs dateOfBirth (Datumsdatentyp) in einen anderen Anspruch dateOfBirthWithTime (dateTime-Datentyp) veranschaulicht.

  <ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
    </InputClaims>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  • Eingabeansprüche:
    • inputClaim: 03.01.2022
  • Ausgabeansprüche:
    • outputClaim: 2022-01-03T00:00:00.000000Z

Datum/UhrzeitVergleich

Vergleicht zwei Datumsangaben und bestimmt, ob das erste Datum später, früher oder gleich einem anderen ist. Das Ergebnis ist ein neuer boolescher Anspruch mit dem Wert true oder false. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Hinweise
Eingabe-Behauptung ersteDatumUhrzeit Datum und Uhrzeit Das erste Datum, das verglichen werden soll, ob es sich später, früher oder gleich dem zweiten Datum befindet. Ein Null-Wert löst eine Ausnahme aus.
Eingabe-Behauptung secondDateTime Datum und Uhrzeit Das zweite zu vergleichende Datum. Nullwert wird als das aktuelle Datum und die aktuelle Uhrzeit behandelt.
Eingabeparameter timeSpanInSeconds INT Zeitbereich, der dem ersten Datum hinzugefügt werden soll. Mögliche Werte: reichen von negativen -2.147.483.648 bis positiven 2.147.483.647.
Eingabeparameter Operator Schnur Einer der folgenden Werte: same, , later thanoder earlier than.
OutputClaim (Ausgabeanspruch) Ergebnis Boolescher Wert Der Anspruch, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde.

Beispiel für DateTimeComparison

Verwenden Sie diese Anspruchstransformation, um festzustellen, ob das erste Datum plus des timeSpanInSeconds Parameters später, früher oder gleich einem anderen ist. Das folgende Beispiel zeigt, dass das erste Datum (2022-01-01T00:00:00) plus 90 Tage später als das zweite Datum ist (2022-03-16T00: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>
  • Eingabeansprüche:
    • firstDateTime: 2022-01-01T00:00:00.100000Z
    • secondDateTime: 2022-03-16T00:00:00.100000Z
  • Eingabeparameter:
    • Operator: später als
    • timeSpanInSeconds: 7776000 (90 Tage)
  • Ausgabeansprüche:
    • Ergebnis: true

IsTermsOfUseConsentRequired

Bestimmen Sie, ob ein dateTime Anspruchstyp früher oder größer als ein bestimmtes Datum ist. Das Ergebnis ist ein neuer boolescher Anspruch mit dem Wert true oder false. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Gegenstand TransformationClaimType Datentyp Hinweise
Eingabe-Behauptung termsOfUseConsentDateTime Datum und Uhrzeit Der dateTime Anspruchstyp, der überprüft, ob er früher oder höher als der termsOfUseTextUpdateDateTime Eingabeparameter ist. Der nicht definierte Wert gibt das Ergebnis zurück true .
Eingabeparameter termsOfUseTextUpdateDateTime Datum und Uhrzeit Der dateTime Anspruchstyp, der überprüft, ob er früher oder höher als der termsOfUseConsentDateTime Eingabeanspruch ist. Der Zeitteil des Datums ist optional.
OutputClaim (Ausgabeanspruch) Ergebnis Boolescher Wert Der Anspruchstyp, der nach dem Aufrufen dieser Anspruchstransformation erstellt wird.

Verwenden Sie diese Anspruchstransformation, um zu bestimmen, ob ein dateTime Anspruchstyp früher oder größer als ein bestimmtes Datum ist. Überprüfen Sie beispielsweise, ob ein Benutzer der neuesten Version Ihrer Nutzungsbedingungen (TOU) oder Nutzungsbedingungen zugestimmt hat. Um zu überprüfen, ob ein Benutzer das letzte Mal zugestimmt hat, speichern Sie das letzte Mal, wenn der Benutzer das ToU in einem Erweiterungsattribut akzeptiert hat. Wenn sich der Text in ToU ändert, aktualisieren Sie den termsOfUseTextUpdateDateTime Eingabeparameter mit dem Zeitpunkt der Änderung. Rufen Sie dann diese Anspruchstransformation auf, um die Datumsangaben zu vergleichen. Wenn die Forderungstransformation zurückgegeben wird true, liegt der termsOfUseConsentDateTime Wert vor dem termsOfUseTextUpdateDateTime Wert, und Sie können den Benutzer bitten, die aktualisierte AU zu akzeptieren.

<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-Beispiel

  • Eingabeansprüche:
    • termsOfUseConsentDateTime: 2020-03-09T09:15:00
  • Eingabeparameter:
    • termsOfUseTextUpdateDateTime: 2021-11-15
  • Ausgabeansprüche:
    • Ergebnis: true

GetCurrentDateTime

Rufen Sie das aktuelle UTC-Datum und die aktuelle UHRZEIT ab, und fügen Sie den Wert einem Anspruchstyp hinzu. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Hinweise
OutputClaim (Ausgabeanspruch) aktuelleDatumUhrzeit Datum und Uhrzeit Dies ist der Anspruchstyp, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde.

Beispiel für GetCurrentDateTime

Das folgende Beispiel zeigt, wie die aktuellen Daten und die aktuelle Uhrzeit abgerufen werden:

<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
  </OutputClaims>
</ClaimsTransformation>
  • Ausgabeansprüche:
    • currentDateTime: 2022-01-14T11:40:35.0000000Z

Nächste Schritte