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 rightOperand
leftOperand
bü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.
AssertDateTimeIsGreaterThan örneği
Aşağıdaki örnek, talebi taleple approvedDateTime
karşılaştırırcurrentDateTime
. değerinden sonraysa currentDateTime
approvedDateTime
bir 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 false
değ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 systemDateTime
systemDate
(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 dateOfBirth
dateOfBirthWithTime
(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 false
değ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 than veya 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 false
değ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ürsetrue
termsOfUseConsentDateTime
, 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
- Azure AD B2C topluluğu GitHub deposunda daha fazla talep dönüştürme örneği bulun