<alwaysFlowImpersonationPolicy> Element
Menentukan bahwa identitas Windows selalu mengalir melintasi titik asinkron, terlepas dari cara peniruan identitas dilakukan.
<konfigurasi>
<runtime>
<alwaysFlowImpersonationPolicy>
Sintaks
<alwaysFlowImpersonationPolicy
enabled="true|false"/>
Atribut dan Elemen
Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.
Atribut
Atribut | Deskripsi |
---|---|
enabled |
Atribut yang diperlukan. Menunjukkan apakah identitas Windows mengalir di seluruh titik asinkron. |
Atribut yang diaktifkan
Nilai | Deskripsi |
---|---|
false |
Identitas Windows tidak mengalir di seluruh titik asinkron, kecuali peniruan dilakukan melalui metode terkelola seperti Impersonate. Ini adalah default. |
true |
Identitas Windows selalu mengalir di seluruh titik asinkron, terlepas dari bagaimana peniruan dilakukan. |
Elemen Anak
Tidak ada.
Elemen Induk
Elemen | Deskripsi |
---|---|
configuration |
Elemen akar di setiap file konfigurasi yang digunakan oleh runtime bahasa umum dan aplikasi .NET Framework. |
runtime |
Berisi informasi tentang pengikatan assembly dan pengumpulan sampah. |
Keterangan
Dalam .NET Framework versi 1.0 dan 1.1, identitas Windows tidak mengalir di seluruh titik asinkron. Dalam .NET Framework versi 2.0, ada ExecutionContext objek yang berisi informasi tentang utas yang saat ini dijalankan, dan mengalirkannya di seluruh titik asinkron dalam domain aplikasi. WindowsIdentity juga mengalir sebagai bagian dari informasi yang mengalir di seluruh titik asinkron, asalkan peniruan dicapai menggunakan metode terkelola seperti Impersonate dan bukan melalui cara lain seperti platform yang dipanggil ke metode asli. Elemen ini digunakan untuk menentukan bahwa identitas Windows mengalir di seluruh titik asinkron, terlepas dari bagaimana peniruan itu dicapai.
Anda dapat mengubah perilaku default ini dengan dua cara lain:
Dalam kode terkelola berdasarkan per utas.
Anda dapat menahan aliran berdasarkan per utas dengan memodifikasi pengaturan ExecutionContext dan SecurityContext dengan menggunakan metode ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity, atau SecurityContext.SuppressFlow.
Dalam panggilan ke antarmuka hosting yang tidak dikelola untuk memuat runtime bahasa umum (CLR).
Jika antarmuka hosting tidak terkelola (bukan executable terkelola sederhana) digunakan untuk memuat CLR, Anda dapat menentukan bendera khusus dalam panggilan ke fungsi CorBindToRuntimeEx Function. Untuk mengaktifkan mode kompatibilitas untuk seluruh proses, atur parameter
flags
untuk Fungsi CorBindToRuntimeEx keSTARTUP_ALWAYSFLOW_IMPERSONATION
.
File konfigurasi
Dalam aplikasi .NET Framework, elemen ini hanya dapat digunakan dalam file konfigurasi aplikasi.
Untuk aplikasi ASP.NET, alur peniruan identitas dapat dikonfigurasi dalam file aspnet.config yang ditemukan di direktori <Folder Windows>\Microsoft.NET\Framework\vx.x.xxxx.
ASP.NET secara default menonaktifkan aliran peniruan identitas di file aspnet.config dengan menggunakan pengaturan konfigurasi berikut ini:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
</runtime>
</configuration>
Di ASP.NET, jika ingin mengizinkan aliran peniruan identitas, Anda harus secara eksplisit menggunakan pengaturan konfigurasi berikut:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
Contoh
Contoh berikut menunjukkan cara menentukan bahwa identitas Windows mengalir di seluruh titik asinkron, bahkan ketika peniruan tercapai melalui cara selain metode terkelola.
<configuration>
<runtime>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>