Jogcímátalakítások dátuma

Fontos

2025. május 1-jére az Azure AD B2C már nem lesz elérhető az új ügyfelek számára. További információ a GYIK-ben.

Ez a cikk példákat tartalmaz az Identity Experience Framework-séma dátumjogcímátalakításainak az Azure Active Directory B2C-ben (Azure AD B2C) való használatára. További információ: jogcímátalakítások.

AssertDateTimeIsGreaterThan

Azt állítja, hogy egy dátum későbbi, mint egy második dátum. Meghatározza, hogy az rightOperand érték nagyobb-e, mint a leftOperand. Ha igen, kivételt jelez. Tekintse meg a jogcímátalakítás élő bemutatóját .

Elem TransformationClaimType Adattípus Jegyzetek
InputClaim balOperandus szál/zsinór Az első jogcím típusa, amelynek később kell lennie, mint a második jogcím.
InputClaim rightOperandus szál/zsinór A második jogcím típusa, amelynek az első jogcímnél korábbinak kell lennie.
BemenetiParaméter AssertIfEqualTo Boolean Megadja, hogy ennek az állításnak hibát kell-e okoznia, ha a bal operandus egyenlő a jobb operandussal. Lehetséges értékek: true (alapértelmezett) vagy false.
BemenetiParaméter AssertIfRightOperandIsNotPresent Boolean Megadja, hogy ez az állítás sikeres legyen-e, ha a megfelelő operandus hiányzik.
BemenetiParaméter TreatAsEqualIfWithinMillseconds Int Megadja az ezredmásodpercek számát, amelyek lehetővé teszik a két dátum között az egyenlő időpontok figyelembe vételét (például az óraeltérés figyelembe vételéhez).

Az AssertDateTimeIsGreaterThan jogcímátalakítás mindig egy érvényesítési műszaki profilból történik, amelyet egy önérvényesített műszaki profil hív meg. A DateTimeGreaterThan ön által érvényesített műszaki profil metaadatai vezérli a felhasználónak a technikai profil által megjelenített hibaüzenetet. A hibaüzenetek honosíthatók.

Diagramok az AssertStringClaimsAreEqual jogcímátalakítás használatát mutatják be.

Példa Az AssertDateTimeIsGreaterThanra

Az alábbi példa összehasonlítja a currentDateTime jogcímet a approvedDateTime jogcímmel. A hiba akkor jelenik meg, ha currentDateTime későbbi, mint approvedDateTime. Az átalakítás egyenlőként kezeli az értékeket, ha 5 percen (30000 ezredmásodpercen) belül vannak. Nem fog hibát okozni, ha az értékek egyenlőek, mert AssertIfEqualTo a beállítás értéke 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>

Megjegyzés:

A fenti példában, ha eltávolítja a AssertIfEqualTo bemeneti paramétert, és az currentDateTime egyenlőapprovedDateTime, hibaüzenet jelenik meg. Az AssertIfEqualTo alapértelmezett érték a következő true: .

  • Bemeneti jogcímek:
    • balOperandus: 2022-01-01T15:00:00
    • jobbOperandus: 2022-01-22T15:00:00
  • Bemeneti paraméterek:
    • AssertIfEqualTo: hamis
    • AssertIfRightOperandIsNotPresent: igaz
    • TreatAsEqualIfWithinMillseconds: 300000 (30 másodperc)
  • Eredmény: Hiba történt

Jogcímátalakítás meghívása

Az alábbi Example-AssertDates érvényesítési műszaki profil meghívja a jogcímek átalakítását 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>

Az önérvényesített műszaki profil meghívja az érvényesítési Example-AssertDates műszaki profilt.

<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

Jogcímtípust DateTime jogcímtípussá Date alakít át. A jogcímátalakítás eltávolítja az időformátumot a dátumból. Tekintse meg a jogcímátalakítás élő bemutatóját .

Elem TransformationClaimType Adattípus Jegyzetek
InputClaim inputClaim dátumIdő A konvertálni kívánt jogcímtípus.
OutputClaim outputClaim dátum A jogcímátalakítás meghívása után létrehozott jogcímtípus.

Példa a ConvertDateTimeToDateClaim-ra

Az alábbi példa a jogcím systemDateTime (dateTime adattípus) másik jogcímre systemDate (dátum adattípus) való konvertálását mutatja be.

<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Bemeneti jogcímek:
    • inputClaim: 2022-01-03T11:34:22.0000000Z
  • Kimeneti jogcímek:
    • outputClaim: 2022-01-03

ConvertDateToDateTimeClaim

Jogcímtípust Date jogcímtípussá DateTime alakít át. A jogcímátalakítás átalakítja az időformátumot, és 12:00:00-t ad hozzá a dátumhoz. Tekintse meg a jogcímátalakítás élő bemutatóját .

Elem TransformationClaimType Adattípus Jegyzetek
InputClaim inputClaim dátum A konvertálni kívánt jogcímtípus.
OutputClaim outputClaim dátumIdő A jogcímátalakítás meghívása után létrehozott jogcímtípus.

Példa a ConvertDateToDateTimeClaim használatára

Az alábbi példa a jogcím dateOfBirth (dátum adattípus) másik jogcímre dateOfBirthWithTime (dateTime adattípus) való átalakítását mutatja be.

  <ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
    </InputClaims>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  • Bemeneti jogcímek:
    • inputClaim: 2022-01-03
  • Kimeneti jogcímek:
    • outputClaim: 2022-01-03T00:00:00.0000000Z

DateTimeComparison

Két dátumot hasonlít össze, és meghatározza, hogy az első dátum későbbi, korábbi vagy egyenlő-e egy másik dátummal. Az eredmény egy új logikai jogcím, amelynek értéke vagy trueértéke false . Tekintse meg a jogcímátalakítás élő bemutatóját .

Elem TransformationClaimType Adattípus Jegyzetek
InputClaim firstDateTime dátumIdő Az első olyan dátum, amely összehasonlítja, hogy későbbi, korábbi vagy egyenlő-e a második dátummal. A null érték kivételt eredményez.
InputClaim secondDateTime dátumIdő A második összehasonlítandó dátum. A null érték az aktuális dátumként és időpontként lesz kezelve.
BemenetiParaméter timeSpanInSeconds Int Az első dátumhoz hozzáadandó időbélyeg. Lehetséges értékek: negatív -2 147 483 648 és pozitív 2 147 483 647 közötti tartomány.
BemenetiParaméter operátor szál/zsinór Az alábbi értékek egyike: same, later thanvagy earlier than.
OutputClaim eredmény Boolean A jogcímátalakítás meghívása után létrejött jogcím.

Példa a DateTimeComparisonra

Ezzel a jogcímátalakítás használatával megállapíthatja, hogy az első dátum és a timeSpanInSeconds paraméter későbbi, korábbi vagy egyenlő-e egy másik dátummal. Az alábbi példa azt mutatja, hogy az első dátum (2022-01-01T00:00:00) plusz 90 nap későbbi, mint a második dátum (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>
  • Bemeneti jogcímek:
    • firstDateTime: 2022-01-01T00:00:00.100000Z
    • secondDateTime: 2022-03-16T00:00:00.100000Z
  • Bemeneti paraméterek:
    • operátor: később, mint
    • timeSpanInSeconds: 7776000 (90 nap)
  • Kimeneti jogcímek:
    • eredmény: igaz

IsTermsOfUseConsentRequired

Annak meghatározása, hogy egy dateTime jogcímtípus korábbi vagy nagyobb-e egy adott dátumnál. Az eredmény egy új logikai jogcím, amelynek értéke vagy trueértéke false . Tekintse meg a jogcímátalakítás élő bemutatóját .

Termék TransformationClaimType Adattípus Jegyzetek
InputClaim termsOfUseConsentDateTime dátumIdő A dateTime jogcím típusa annak ellenőrzéséhez, hogy korábbi vagy későbbi-e, mint a termsOfUseTextUpdateDateTime bemeneti paraméter. A nem definiált érték az eredményt adja true vissza.
BemenetiParaméter termsOfUseTextUpdateDateTime dátumIdő A dateTime jogcím típusa annak ellenőrzéséhez, hogy korábbi vagy későbbi-e, mint a termsOfUseConsentDateTime bemeneti jogcím. A dátum idő része nem kötelező.
OutputClaim eredmény Boolean A jogcímátalakítás meghívása után létrehozott jogcímtípus.

Ezzel a jogcímátalakítással meghatározhatja, hogy egy dateTime jogcímtípus korábbi vagy nagyobb-e egy adott dátumnál. Ellenőrizze például, hogy egy felhasználó hozzájárult-e a használati feltételek (TOU) legújabb verziójához vagy a szolgáltatási feltételekhez. Ha ellenőrizni szeretné, hogy a felhasználó mikor járult hozzá utoljára, tárolja az utolsó alkalommal, amikor a felhasználó elfogadta a toU-t egy bővítményattribútumban. Amikor megváltozik a TOU-szöveg, frissítse a termsOfUseTextUpdateDateTime bemeneti paramétert a módosítás időpontjával. Ezután hívja meg ezt a jogcímátalakítást a dátumok összehasonlítása érdekében. Ha a jogcímek átalakítása eredményül ad truevissza, az termsOfUseConsentDateTime érték korábbi, mint az termsOfUseTextUpdateDateTime érték, és megkérheti a felhasználót, hogy fogadja el a frissített TOU-t.

<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 példa

  • Bemeneti jogcímek:
    • termsOfUseConsentDateTime: 2020-03-09T09:15:00
  • Bemeneti paraméterek:
    • termsOfUseTextUpdateDateTime: 2021-11-15
  • Kimeneti jogcímek:
    • eredmény: igaz

AzAktuálisDátumIdőpontLekérése

Kérje le az aktuális UTC-dátumot és időpontot, és adja hozzá az értéket egy jogcímtípushoz. Tekintse meg a jogcímátalakítás élő bemutatóját .

Elem TransformationClaimType Adattípus Jegyzetek
OutputClaim currentDateTime dátumIdő A jogcímátalakítás meghívása után létrehozott jogcímtípus.

Példa a GetCurrentDateTime-ra

Az alábbi példa bemutatja, hogyan szerezheti be az aktuális adatokat és időt:

<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
  </OutputClaims>
</ClaimsTransformation>
  • Kimeneti jogcímek:
    • currentDateTime: 2022-01-14T11:40:35.0000000Z

Következő lépések