Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Berlaku mulai 1 Mei 2025, Azure AD B2C tidak akan lagi tersedia untuk dibeli untuk pelanggan baru. Pelajari lebih lanjut di FAQ kami.
Artikel ini menyediakan contoh untuk menggunakan transformasi klaim tanggal dari skema Kerangka Kerja Pengalaman Identitas di Azure Active Directory B2C (Azure AD B2C). Untuk informasi selengkapnya, lihat transformasi klaim.
AssertDateTimeIsGreaterThan
Menegaskan bahwa satu tanggal lebih lambat dari tanggal kedua. Menentukan apakah rightOperand
lebih besar dari leftOperand
. Jika ya, melemparkan pengecualian. Lihat demo Langsung dari transformasi klaim ini.
Elemen | TransformationClaimType | Jenis Data | Catatan |
---|---|---|---|
Klaim Masukan | kiriOperan | benang | Jenis klaim pertama, yang harus lebih lambat dari klaim kedua. |
Klaim Masukan | Operan kanan | benang | Jenis klaim kedua, yang harus lebih awal dari klaim pertama. |
Parameter Masukan | AssertIfEqualTo | Boolean | Menentukan apakah pernyataan ini harus melemparkan kesalahan jika operand kiri sama dengan operand kanan. Nilai yang mungkin: true (default), atau false . |
Parameter Masukan | AssertIfRightOperandIsNotPresent | Boolean | Menentukan apakah pernyataan ini harus diteruskan jika operand kanan hilang. |
Parameter Masukan | TreatAsEqualIfWithinMillseconds | int (integer) | Menentukan jumlah milidetik untuk memungkinkan antara dua waktu tanggal untuk mempertimbangkan waktu yang sama (misalnya, untuk memperhitungkan kecondongan jam). |
Transformasi klaim AssertDateTimeIsGreaterThan selalu dijalankan dari profil teknis validasi yang dipanggil oleh profil teknis yang dinyatakan sendiri. Metadata profil teknis yang ditegaskan sendiri DateTimeGreaterThan mengontrol pesan kesalahan yang disajikan profil teknis kepada pengguna. Pesan kesalahan dapat dilokalisasi.
Contoh AssertDateTimeIsGreaterThan
Contoh berikut membandingkan currentDateTime
klaim dengan approvedDateTime
klaim. Kesalahan dilemparkan jika currentDateTime
lebih lambat dari approvedDateTime
. Transformasi memperlakukan nilai sebagai sama jika berada dalam selisih 5 menit (30000 milidetik). Ini tidak akan melemparkan kesalahan jika nilainya sama karena AssertIfEqualTo
diatur 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>
Nota
Dalam contoh di atas, jika Anda menghapus AssertIfEqualTo
parameter input, dan currentDateTime
sama denganapprovedDateTime
, kesalahan akan dilemparkan. Nilai AssertIfEqualTo
defaultnya adalah true
.
- Klaim input:
- kiriOperand: 2022-01-01T15:00:00
- Operan kanan: 2022-01-22T15:00:00
- Parameter input:
- AssertIfEqualTo: false
- AssertIfRightOperandIsNotPresent: true
- TreatAsEqualIfWithinMillseconds: 300000 (30 detik)
- Hasil: Kesalahan diberikan
Memanggil transformasi klaim
Profil teknis validasi berikut Example-AssertDates
memanggil AssertApprovedDateTimeLaterThanCurrentDateTime
transformasi klaim.
<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>
Profil teknis yang dinyatakan sendiri memanggil profil teknis validasi Example-AssertDates
.
<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>
Klaim KonversiTanggalWaktuKeTanggalKlaim
DateTime
Mengonversi jenis klaim menjadi Date
jenis klaim. Transformasi klaim menghapus format waktu dari tanggal. Lihat demo Langsung dari transformasi klaim ini.
Elemen | TransformationClaimType | Jenis Data | Catatan |
---|---|---|---|
Klaim Masukan | inputKlaim | tanggalWaktu | Jenis klaim yang akan dikonversi. |
Klaim Keluaran | outputKlaim | tanggal | Jenis klaim yang dihasilkan setelah transformasi klaim ini telah dipanggil. |
Contoh ConvertDateTimeToDateClaim
Contoh berikut menunjukkan konversi klaim systemDateTime
(jenis data dateTime) ke klaim systemDate
lain (jenis data tanggal).
<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Klaim input:
- masukanKlaim: 2022-01-03T11:34:22.0000000Z
- Klaim output:
- outputKlaim: 2022-01-03
Klaim ConvertDateToDateTime
Date
Mengonversi jenis klaim menjadi DateTime
jenis klaim. Transformasi klaim mengonversi format waktu dan menambahkan 12:00:00 AM ke tanggal. Lihat demo Langsung dari transformasi klaim ini.
Elemen | TransformationClaimType | Jenis Data | Catatan |
---|---|---|---|
Klaim Masukan | inputKlaim | tanggal | Jenis klaim yang akan dikonversi. |
Klaim Keluaran | outputKlaim | tanggalWaktu | Jenis klaim yang dihasilkan setelah transformasi klaim ini telah dipanggil. |
Contoh ConvertDateToDateTimeClaim
Contoh berikut menunjukkan konversi klaim dateOfBirth
(jenis data tanggal) ke klaim dateOfBirthWithTime
lain (jenis data dateTime).
<ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Klaim input:
- masukanKlaim: 2022-01-03
- Klaim output:
- outputClaim: 2022-01-03T00:00:00.00000000Z
Perbandingan DateTime
Membandingkan dua tanggal dan menentukan apakah tanggal pertama nanti, sebelumnya, atau sama dengan tanggal lainnya. Hasilnya adalah klaim Boolean baru dengan nilai true
atau false
. Lihat demo Langsung dari transformasi klaim ini.
Elemen | TransformationClaimType | Jenis Data | Catatan |
---|---|---|---|
Klaim Masukan | TanggalWaktu pertama | tanggalWaktu | Tanggal pertama untuk membandingkan apakah itu nanti, sebelumnya, atau sama dengan tanggal kedua. Nilai null memberikan pengecualian. |
Klaim Masukan | TanggalWaktu kedua | tanggalWaktu | Tanggal kedua untuk dibandingkan. Nilai null diperlakukan sebagai tanggal dan waktu saat ini. |
Parameter Masukan | waktuRentangDalam Detik | int (integer) | Rentang waktu untuk ditambahkan ke tanggal pertama. Nilai yang mungkin: berkisar antara negatif -2.147.483.648 hingga positif 2.147.483.647. |
Parameter Masukan | pengendali | benang | Salah satu nilai berikut: same , , later than atau earlier than . |
Klaim Keluaran | hasil | Boolean | Jenis klaim yang dihasilkan setelah transformasi klaim ini telah dipanggil. |
Contoh DateTimeComparison
Gunakan transformasi klaim ini untuk menentukan apakah tanggal pertama ditambah timeSpanInSeconds
parameternya nanti, sebelumnya, atau sama dengan yang lain. Contoh berikut menunjukkan bahwa tanggal pertama (2022-01-01T00:00:00) ditambah 90 hari lebih lambat dari tanggal kedua (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>
- Klaim input:
- TanggalWaktu pertama: 2022-01-01T00:00:00.100000Z
- TanggalWaktu kedua: 2022-03-16T00:00:00.100000Z
- Parameter input:
- operator: lebih lambat dari
- timeSpanInSeconds: 7776000 (90 hari)
- Klaim output:
- hasil: true
IsTermsOfUseConsentRequired
Tentukan apakah dateTime
jenis klaim lebih lama atau lebih besar dari tanggal tertentu. Hasilnya adalah klaim Boolean baru dengan nilai true
atau false
. Lihat demo Langsung dari transformasi klaim ini.
Barang | TransformationClaimType | Jenis data | Catatan |
---|---|---|---|
Klaim Masukan | termsOfUseConsentDateTime | tanggalWaktu | Jenis dateTime klaim untuk memeriksa apakah itu lebih awal atau lebih baru dari termsOfUseTextUpdateDateTime parameter input. Nilai yang tidak ditentukan mengembalikan true hasil. |
Parameter Masukan | termsOfUseTextUpdateDateTime | tanggalWaktu |
dateTime Jenis klaim untuk memeriksa apakah itu lebih awal atau lebih baru dari termsOfUseConsentDateTime klaim input. Bagian waktu dari tanggal bersifat opsional. |
Klaim Keluaran | hasil | Boolean | Jenis klaim yang dihasilkan setelah transformasi klaim ini telah dipanggil. |
Gunakan transformasi klaim ini untuk menentukan apakah dateTime
jenis klaim lebih lama atau lebih besar dari tanggal tertentu. Misalnya, periksa apakah pengguna telah menyetujui versi terbaru ketentuan penggunaan (TOU) atau ketentuan layanan Anda. Untuk memeriksa terakhir kali pengguna menyetujui, simpan terakhir kali pengguna menerima TOU dalam atribut ekstensi. Saat kata-kata TOU Anda berubah, perbarui termsOfUseTextUpdateDateTime
parameter input dengan waktu perubahan. Kemudian, panggil transformasi klaim ini untuk membandingkan tanggal. Jika transformasi klaim mengembalikan true
, termsOfUseConsentDateTime
nilainya lebih awal dari termsOfUseTextUpdateDateTime
nilai , dan Anda dapat meminta pengguna untuk menerima TOU yang diperbarui.
<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>
Contoh IsTermsOfUseConsentRequired
- Klaim input:
- termsOfUseConsentDateTime: 2020-03-09T09:15:00
- Parameter input:
- termsOfUseTextUpdateDateTime: 2021-11-15
- Klaim output:
- hasil: true
AmbilTanggalWaktuTerkini
Dapatkan tanggal dan waktu UTC saat ini dan tambahkan nilai ke jenis klaim. Lihat demo Langsung dari transformasi klaim ini.
Elemen | TransformationClaimType | Jenis Data | Catatan |
---|---|---|---|
Klaim Keluaran | saat iniTanggalWaktu | tanggalWaktu | Jenis klaim yang dihasilkan setelah transformasi klaim ini telah dipanggil. |
Contoh GetCurrentDateTime
Contoh berikut menunjukkan cara mendapatkan data dan waktu saat ini:
<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
</OutputClaims>
</ClaimsTransformation>
- Klaim output:
- saat iniTanggalWaktu: 2022-01-14T11:40:35.0000000Z
Langkah selanjutnya
- Temukan lebih banyak sampel transformasi klaim pada komunitas repositori GitHub Azure AD B2C