Delen via


Datumclaimtransformaties

Belangrijk

Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.

Dit artikel bevat voorbeelden voor het gebruik van de datumclaimtransformaties van het Identity Experience Framework-schema in Azure Active Directory B2C (Azure AD B2C). Zie claimtransformaties voor meer informatie.

AssertDateTimeIsGreaterThan

Geeft aan dat één datum later is dan een tweede datum. Bepaalt of de rightOperand waarde groter is dan de leftOperand. Zo ja, genereert een uitzondering. Bekijk de livedemo van deze claimtransformatie.

Onderdeel TransformatieClaimType Gegevenssoort Opmerkingen
Invoer claimen linksoperand touw Het type van de eerste claim, dat later moet zijn dan de tweede claim.
Invoer claimen rechtsOperand touw Tweede claimtype, dat eerder moet zijn dan de eerste claim.
Invoerparameter AssertIfEqualTo booleaan Hiermee geeft u op of deze bewering een fout moet veroorzaken als de linkeroperand gelijk is aan de rechteroperand. Mogelijke waarden: true (standaard) of false.
Invoerparameter BewerenAlsRechtsOperandIsNietAanwezig booleaan Hiermee geeft u op of deze assertie moet worden doorgegeven als de juiste operand ontbreekt.
Invoerparameter TreatAsEqualIfWithinMillseconds int (integer) Hiermee geeft u het aantal milliseconden op dat tussen de twee datums moet worden toegestaan om rekening te houden met de tijden die gelijk zijn (bijvoorbeeld om rekening te houden met de klok scheeftrekken).

De claimtransformatie AssertDateTimeIsGreaterThan wordt altijd uitgevoerd vanuit een validatie technisch profiel dat wordt aangeroepen door een zelf-asserted technisch profiel. De metagegevens van het technische profiel DateTimeGreaterThan beheren het foutbericht dat het technische profiel aan de gebruiker presenteert. De foutberichten kunnen worden gelokaliseerd.

In diagrammen ziet u hoe u de claimtransformatie AssertStringClaimsAreEqual gebruikt.

Voorbeeld van AssertDateTimeIsGreaterThan

In het volgende voorbeeld wordt de currentDateTime claim vergeleken met de approvedDateTime claim. Er wordt een fout gegenereerd als currentDateTime deze later is dan approvedDateTime. De transformatie behandelt waarden als gelijk als ze binnen 5 minuten (30000 milliseconden) verschil zijn. Er wordt geen fout gegenereerd als de waarden gelijk zijn aan omdat AssertIfEqualTo deze is ingesteld op 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>

Opmerking

Als u in het bovenstaande voorbeeld de AssertIfEqualTo invoerparameter verwijdert en de currentDateTime parameter gelijk is aanapprovedDateTime, wordt er een fout gegenereerd. De AssertIfEqualTo standaardwaarde is true.

  • Invoerclaims:
    • linksOperand: 2022-01-01T15:00:00
    • rechts: 2022-01-22T15:00:00
  • Invoerparameters:
    • AssertIfEqualTo: onwaar
    • AssertIfRightOperandIsNotPresent: waar
    • TreatAsEqualIfWithinMillseconds: 300000 (30 seconden)
  • Resultaat: fout gegenereerd

De claimtransformatie aanroepen

Het volgende Example-AssertDates technische validatieprofiel roept de AssertApprovedDateTimeLaterThanCurrentDateTime claimtransformatie aan.

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

Het zelfbeweert technische profiel roept het technische validatieprofiel Example-AssertDates aan.

<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

Converteert een DateTime claimtype naar een Date claimtype. De claimtransformatie verwijdert de tijdnotatie van de datum. Bekijk de livedemo van deze claimtransformatie.

Onderdeel TransformatieClaimType Gegevenssoort Opmerkingen
Invoer claimen invoerClaim datum en tijd Het claimtype dat moet worden geconverteerd.
Uitvoer claimen outputClaim datum Het claimtype dat wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van ConvertDateTimeToDateClaim

In het volgende voorbeeld ziet u de conversie van de claim systemDateTime (datum/tijd-gegevenstype) naar een andere claim systemDate (datumgegevenstype).

<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: 2022-01-03T11:34:22.00000000Z
  • Uitvoerclaims:
    • outputClaim: 2022-01-03

ConvertDateToDateTimeClaim

Converteert een Date claimtype naar een DateTime claimtype. De claimtransformatie converteert de tijdnotatie en voegt 12:00:00 uur toe aan de datum. Bekijk de livedemo van deze claimtransformatie.

Onderdeel TransformatieClaimType Gegevenssoort Opmerkingen
Invoer claimen invoerClaim datum Het claimtype dat moet worden geconverteerd.
Uitvoer claimen outputClaim datum en tijd Het claimtype dat wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van ConvertDateToDateTimeClaim

In het volgende voorbeeld ziet u de conversie van de claim dateOfBirth (datumgegevenstype) naar een andere claim dateOfBirthWithTime (datum/tijd-gegevenstype).

  <ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
    </InputClaims>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  • Invoerclaims:
    • invoerClaim: 2022-01-03
  • Uitvoerclaims:
    • outputClaim: 2022-01-03T00:00:00.0000000Z

DateTimeVergelijking

Vergelijkt twee datums en bepaalt of de eerste datum later, eerder of gelijk is aan een andere datum. Het resultaat is een nieuwe Booleaanse claim met een waarde van true of false. Bekijk de livedemo van deze claimtransformatie.

Onderdeel TransformatieClaimType Gegevenssoort Opmerkingen
Invoer claimen eerste DateTime datum en tijd De eerste datum om te vergelijken of deze later, eerder of gelijk is aan de tweede datum. Een null waarde genereert een uitzondering.
Invoer claimen tweedeDateTime datum en tijd De tweede datum die moet worden vergeleken. Null-waarde wordt behandeld als de huidige datum en tijd.
Invoerparameter timeSpanInSeconds int (integer) Tijdspanne die moet worden toegevoegd aan de eerste datum. Mogelijke waarden: variëren van negatief -2.147.483.648 tot positief 2.147.483.647.
Invoerparameter bediener touw Een van de volgende waarden: same, later thanof earlier than.
Uitvoer claimen resultaat booleaan De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van DateTimeComparison

Gebruik deze claimtransformatie om te bepalen of de eerste datum plus de timeSpanInSeconds parameter later, eerder of gelijk is aan een andere. In het volgende voorbeeld ziet u dat de eerste datum (2022-01-01T00:00:00) plus 90 dagen later is dan de tweede datum (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>
  • Invoerclaims:
    • firstDateTime: 2022-01-01T00:00:00.100000Z
    • secondDateTime: 2022-03-16T00:00:00.100000Z
  • Invoerparameters:
    • operator: later dan
    • timeSpanInSeconds: 7776000 (90 dagen)
  • Uitvoerclaims:
    • resultaat: true

IsGebruiksvoorwaardenToestemmingVereist

Bepaal of een dateTime claimtype eerder of groter is dan een specifieke datum. Het resultaat is een nieuwe Booleaanse claim met een waarde van true of false. Bekijk de livedemo van deze claimtransformatie.

Onderdeel TransformatieClaimType Gegevenstype Opmerkingen
Invoer claimen gebruiksvoorwaardenToestemmingDateTime datum en tijd Het dateTime claimtype om te controleren of het eerder of later is dan de termsOfUseTextUpdateDateTime invoerparameter. Niet-gedefinieerde waarde retourneert true resultaat.
Invoerparameter termsOfUseTextUpdateDateTime datum en tijd Het dateTime claimtype om te controleren of het eerder of later is dan de termsOfUseConsentDateTime invoerclaim. Het tijdgedeelte van de datum is optioneel.
Uitvoer claimen resultaat booleaan Het claimtype dat wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Gebruik deze claimtransformatie om te bepalen of een dateTime claimtype eerder of groter is dan een specifieke datum. Controleer bijvoorbeeld of een gebruiker toestemming heeft gegeven voor de nieuwste versie van uw gebruiksvoorwaarden of servicevoorwaarden. Als u wilt controleren wanneer een gebruiker de laatste keer toestemming heeft gegeven, slaat u de laatste keer op dat de gebruiker de tou in een extensiekenmerk heeft geaccepteerd. Wanneer de inhoudstekst wordt gewijzigd, werkt u de termsOfUseTextUpdateDateTime invoerparameter bij met het tijdstip van de wijziging. Roep vervolgens deze claimtransformatie aan om de datums te vergelijken. Als de claimtransformatie retourneert true, is de termsOfUseConsentDateTime waarde ouder dan de termsOfUseTextUpdateDateTime waarde en kunt u de gebruiker vragen de bijgewerkte inhoudsaangifte te accepteren.

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

Voorbeeld isTermsOfUseConsentRequired

  • Invoerclaims:
    • voorwaardenVanGebruikToestemmingDatumTijd: 2020-03-09T09:15:00
  • Invoerparameters:
    • termsOfUseTextUpdateDateTime: 2021-11-15
  • Uitvoerclaims:
    • resultaat: true

HuidigeDatumTijdOphalen

Haal de huidige UTC-datum en -tijd op en voeg de waarde toe aan een claimtype. Bekijk de livedemo van deze claimtransformatie.

Onderdeel TransformatieClaimType Gegevenssoort Opmerkingen
Uitvoer claimen huidigeDatumTijd datum en tijd Het claimtype dat wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van GetCurrentDateTime

In het volgende voorbeeld ziet u hoe u de huidige gegevens en tijd opvragen:

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

Volgende stappen