Megosztás a következőn keresztül:


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

Ez a cikk példákat tartalmaz az Identity Experience Framework-séma dátumjogcím-átalakításainak használatára az Azure Active Directory B2C-ben (Azure AD B2C). 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 a rightOperand 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 leftOperand sztring Az első jogcím típusa, amelynek későbbinek kell lennie, mint a második jogcímnek.
InputClaim rightOperand sztring A második jogcím típusa, amelynek az első jogcímnél korábbinak kell lennie.
InputParameter AssertIfEqualTo boolean Meghatározza, hogy a helyességi feltétel hibát jelez-e, ha a bal operandus egyenlő a jobb operandussal. Lehetséges értékek: true (alapértelmezett) vagy false.
InputParameter AssertIfRightOperandIsNotPresent boolean Meghatározza, hogy a helyességi feltételnek meg kell-e felelnie, ha a megfelelő operandus hiányzik.
InputParameter TreatAsEqualIfWithinMillseconds int Megadja az ezredmásodpercek számát, amelyek lehetővé teszik, hogy a két dátum közötti idő egyenlő legyen (például az óraeltérés figyelembevétele érdekében).

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

A diagramok bemutatják, hogyan használható az AssertStringClaimsAreEqual jogcímátalakítás.

Example of AssertDateTimeIsGreaterThan

Az alábbi példa összehasonlítja a currentDateTime jogcímet a approvedDateTime jogcímmel. A hibaüzenet 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 ad vissza hibát, ha az értékek egyenlők, mert AssertIfEqualTo a é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 a currentDateTime értéke egyenlőapprovedDateTime, hibaüzenet jelenik meg. Az AssertIfEqualTo alapértelmezett érték a következő: true.

  • Bemeneti jogcímek:
    • leftOperand: 2022-01-01T15:00:00
    • rightOperand: 2022-01-22T15:00:00
  • Bemeneti paraméterek:
    • AssertIfEqualTo: false
    • AssertIfRightOperandIsNotPresent: true
    • 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 technikai profil meghívja a jogcímátalakítást 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 az érvényesítési Example-AssertDates műszaki profilt hívja meg.

<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 Datetime Az átalakítandó 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: ConvertDateTimeToDateClaim

Az alábbi példa a jogcím systemDateTime (dateTime adattípus) másik jogcímre systemDate (dátum adattípusra) való átalakítá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.00000000Z
  • 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 hozzáadja a 12:00:00 időpontot a dátumhoz. Tekintse meg a jogcímátalakítás élő bemutatóját .

Elem TransformationClaimType Adattípus Jegyzetek
InputClaim inputClaim dátum Az átalakítandó jogcímtípus.
OutputClaim outputClaim Datetime A jogcímátalakítás meghívása után létrehozott jogcímtípus.

Példa a ConvertDateToDateTimeClaim függvényre

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

Összehasonlít két dátumot, é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 true vagy false. Tekintse meg a jogcímátalakítás élő bemutatóját .

Elem TransformationClaimType Adattípus Jegyzetek
InputClaim firstDateTime Datetime Az első összehasonlítási dátum, amely azt jelzi, hogy az későbbi, korábbi vagy egyenlő-e a második dátummal. A null érték kivételt jelez.
InputClaim secondDateTime Datetime A második összehasonlítandó dátum. A null érték az aktuális dátumként és időpontként van kezelve.
InputParameter timeSpanInSeconds int Az első dátumhoz hozzáadandó időtartomány. Lehetséges értékek: negatív -2 147 483 648 és pozitív 2 147 483 647 közötti tartomány.
InputParameter operátor sztring Az alábbi értékek egyike: same, later than, vagy earlier than.
OutputClaim result boolean A jogcímátalakítás meghívása után létrehozott jogcím.

Példa a DateTimeComparisonra

Ezzel a jogcímátalakítást használva megállapíthatja, hogy az első dátum és a timeSpanInSeconds paraméter későbbi, korábbi vagy egy másik értékkel egyenlő-e. 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őbbi, mint
    • timeSpanInSeconds: 7776000 (90 nap)
  • Kimeneti jogcímek:
    • eredmény: igaz

IsTermsOfUseConsentRequired

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

Elem TransformationClaimType Adattípus Jegyzetek
InputClaim termsOfUseConsentDateTime Datetime 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.
InputParameter termsOfUseTextUpdateDateTime Datetime 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 result boolean A jogcímátalakítás meghívása után létrehozott jogcímtípus.

Ezzel a jogcímátalakítással megállapíthatja, hogy egy dateTime jogcímtípus korábbi vagy nagyobb egy adott dátumnál. Ellenőrizze például, hogy egy felhasználó hozzájárult-e a használati feltételek (TOU) vagy a szolgáltatási feltételek legújabb verziójához. A felhasználó utolsó hozzájárulásának ellenőrzéséhez 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ásához. Ha a jogcímátalakítás trueeredménye , 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

GetCurrentDateTime

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