Talep dönüştürmelerini tarihle

Bu makalede, Azure Active Directory B2C'de (Azure AD B2C) Kimlik Deneyimi Çerçevesi şemasının tarih talep dönüştürmelerini kullanma örnekleri sağlanır. Daha fazla bilgi için bkz. talep dönüştürmeleri.

AssertDateTimeIsGreaterThan

Bir tarihin ikinci tarihten sonra olduğunu onaylar. değerinin değerinden rightOperandleftOperandbüyük olup olmadığını belirler. Evet ise, bir özel durum oluşturur. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim leftOperand string İlk talebin türü( ikinci talepten sonra olmalıdır).
InputClaim rightOperand string İkinci talebin türü, ilk talepten daha erken olmalıdır.
Inputparameter AssertIfEqualTo boolean Sol işlenen sağ işlenene eşitse bu onay işleminin hata oluşturup oluşturmayacağını belirtir. Olası değerler: true (varsayılan) veya false.
Inputparameter AssertIfRightOperandIsNotPresent boolean Doğru işlenen eksikse bu onaylama işleminin geçip geçmeyeceğini belirtir.
Inputparameter TreatAsEqualIfWithinMillseconds int İki tarih saati arasında eşit saatleri dikkate almak için izin vermek için milisaniye sayısını belirtir (örneğin, saat dengesizliği hesaba katmak için).

AssertDateTimeIsGreaterThan talep dönüşümü her zaman kendi kendini onaylayanbir teknik profil tarafından çağrılan bir doğrulama teknik profilinden yürütülür. DateTimeGreaterThan kendi kendini onaylayan teknik profil meta verileri, teknik profilin kullanıcıya sunduğu hata iletisini denetler. Hata iletileri yerelleştirilebilir.

Diyagramlar AssertStringClaimsAreEqual talep dönüştürmesinin nasıl kullanılacağını gösterir.

AssertDateTimeIsGreaterThan örneği

Aşağıdaki örnek, talebi taleple approvedDateTime karşılaştırırcurrentDateTime. değerinden sonraysa currentDateTimeapprovedDateTimebir hata oluşur. Dönüştürme, değerleri 5 dakika (30000 milisaniye) fark içindeyse eşit olarak değerlendirir. değeri olarak ayarlandığından falsedeğerler eşitse AssertIfEqualTo hata oluşturmaz.

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

Not

Yukarıdaki örnekte, giriş parametresini AssertIfEqualTo kaldırırsanız ve currentDateTime değerine eşitseapprovedDateTime bir hata oluşur. Varsayılan AssertIfEqualTo değer şeklindedir true.

  • Giriş talepleri:
    • leftOperand: 2022-01-01T15:00:00
    • rightOperand: 2022-01-22T15:00:00
  • Giriş parametreleri:
    • AssertIfEqualTo: false
    • AssertIfRightOperandIsNotPresent: true
    • TreatAsEqualIfWithinMillseconds: 300000 (30 saniye)
  • Sonuç: Hata oluştu

Talep dönüştürmesini çağırma

Aşağıdaki Example-AssertDates doğrulama teknik profili talep dönüştürmeyi AssertApprovedDateTimeLaterThanCurrentDateTime çağırır.

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

Kendi kendini onaylanan teknik profil doğrulama Example-AssertDates teknik profilini çağırır.

<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

Bir DateTime talep türünü talep türüne Date dönüştürür. Talep dönüştürme, tarihten saat biçimini kaldırır. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim tarih saat Dönüştürülecek talep türü.
OutputClaim outputClaim date Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türü.

ConvertDateTimeToDateClaim Örneği

Aşağıdaki örnekte, talebin (dateTime veri türü) başka bir talepe systemDateTimesystemDate (tarih veri türü) dönüştürülmesi gösterilmektedir.

<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: 2022-01-03T11:34:22.0000000Z
  • Çıkış talepleri:
    • outputClaim: 2022-01-03

ConvertDateToDateTimeClaim

Bir Date talep türünü talep türüne DateTime dönüştürür. Talep dönüştürme, saat biçimini dönüştürür ve tarihe 12:00:00 ekler. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim inputClaim date Dönüştürülecek talep türü.
OutputClaim outputClaim tarih saat Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türü.

ConvertDateToDateTimeClaim Örneği

Aşağıdaki örnekte, talebin (tarih veri türü) başka bir talepe dateOfBirthdateOfBirthWithTime (dateTime veri türü) dönüştürülmesi gösterilmektedir.

  <ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
    </InputClaims>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  • Giriş talepleri:
    • inputClaim: 2022-01-03
  • Çıkış talepleri:
    • outputClaim: 2022-01-03T00:00:00.0000000Z

DateTimeComparison

İki tarihi karşılaştırır ve ilk tarihin daha sonra mı, daha erken mi yoksa başka bir tarihe eşit mi olduğunu belirler. Sonuç, veya falsedeğerine sahip yeni bir Boole talebidirtrue. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
InputClaim firstDateTime tarih saat Daha sonra mı, daha erken mi yoksa ikinci tarihe eşit mi olduğunu karşılaştıracak ilk tarih. Null değer bir özel durum oluşturur.
InputClaim secondDateTime tarih saat Karşılaştıracak ikinci tarih. Null değer geçerli tarih ve saat olarak değerlendirilir.
Inputparameter timeSpanInSeconds int İlk tarihe eklenecek zaman aralığı. Olası değerler: negatif -2.147.483.648 ile pozitif 2.147.483.647 aralığındadır.
Inputparameter işleç string Aşağıdaki değerlerden biri: same, later thanveya earlier than.
OutputClaim sonuç boolean Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep.

DateTimeComparison örneği

İlk tarih ve parametrenin timeSpanInSeconds daha sonra mı, daha erken mi yoksa başka bir tarihe eşit mi olduğunu belirlemek için bu talep dönüştürmesini kullanın. Aşağıdaki örnek, ilk tarihin (2022-01-01T00:00:00) artı 90 günün ikinci tarihten (2022-03-16T00:00:00) sonra olduğunu gösterir.

<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>
  • Giriş talepleri:
    • firstDateTime: 2022-01-01T00:00:00.100000Z
    • secondDateTime: 2022-03-16T00:00:00.100000Z
  • Giriş parametreleri:
    • işleç: sonraki
    • timeSpanInSeconds: 7776000 (90 gün)
  • Çıkış talepleri:
    • result: true

IsTermsOfUseConsentRequired

Talep türünün belirli bir dateTime tarihten önce mi yoksa daha büyük mü olduğunu belirleyin. Sonuç, veya falsedeğerine sahip yeni bir Boole talebidirtrue. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri türü Notlar
InputClaim termsOfUseConsentDateTime tarih saat Giriş dateTime parametresinden önce mi yoksa daha termsOfUseTextUpdateDateTime geç mi olduğunu denetlemek için talep türü. Tanımlanmamış değer sonucu döndürür true .
Inputparameter termsOfUseTextUpdateDateTime tarih saat Giriş talebinden dateTime önce mi yoksa daha termsOfUseConsentDateTime geç mi olduğunu denetlemek için talep türü. Tarihin saat bölümü isteğe bağlıdır.
OutputClaim sonuç boolean Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türü.

Talep türünün belirli bir dateTime tarihten önce mi yoksa daha büyük mü olduğunu belirlemek için bu talep dönüştürmesini kullanın. Örneğin, bir kullanıcının kullanım koşullarınızın (TOU) en son sürümünü veya hizmet koşullarını onaylayıp onaylamadığını denetleyin. Kullanıcının en son onayını denetlemek için, kullanıcının tou kabul etme zamanını bir uzantı özniteliğinde depolayın. TOU ifadeniz değiştiğinde, giriş parametresini termsOfUseTextUpdateDateTime değişikliğin zamanıyla güncelleştirin. Ardından, tarihleri karşılaştırmak için bu talep dönüştürmesini çağırın. Talep dönüştürmesi döndürürsetruetermsOfUseConsentDateTime, değer değerden daha termsOfUseTextUpdateDateTime eskidir ve kullanıcıdan güncelleştirilmiş tou kabul etmesini isteyebilirsiniz.

<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 örneği

  • Giriş talepleri:
    • termsOfUseConsentDateTime: 2020-03-09T09:15:00
  • Giriş parametreleri:
    • termsOfUseTextUpdateDateTime: 2021-11-15
  • Çıkış talepleri:
    • result: true

GetCurrentDateTime

Geçerli UTC tarih ve saatini alın ve değeri bir talep türüne ekleyin. Bu talep dönüştürme işleminin Canlı tanıtımını gözden geçirin.

Öğe TransformationClaimType Veri Türü Notlar
OutputClaim currentDateTime tarih saat Bu talep dönüştürmesi çağrıldıktan sonra oluşturulan talep türü.

GetCurrentDateTime örneği

Aşağıdaki örnekte, geçerli verileri ve zamanı nasıl edinecekleri gösterilmektedir:

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

Sonraki adımlar