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.
Elemen
Menentukan bahwa identitas Windows tidak mengalir di seluruh titik asinkron, terlepas dari pengaturan alur untuk konteks eksekusi pada utas saat ini.
<configuration>
<runtime>
<legacyImpersonationPolicy>
Sintaksis
<legacyImpersonationPolicy
enabled="true|false"/>
Atribut dan Elemen
Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.
Atribut
| Atribut | Deskripsi |
|---|---|
enabled |
Atribut yang diperlukan. Menentukan bahwa WindowsIdentity tidak mengalir melintasi titik asinkron, terlepas dari pengaturan alur ExecutionContext pada utas saat ini. |
Atribut yang diaktifkan
| Nilai | Deskripsi |
|---|---|
false |
WindowsIdentity mengalir di seluruh titik asinkron tergantung pada pengaturan alur ExecutionContext untuk utas saat ini. Ini adalah default. |
true |
WindowsIdentity tidak mengalir di seluruh titik asinkron, terlepas dari pengaturan alur ExecutionContext pada utas saat ini. |
Elemen Anak
Tidak.
Elemen Induk
| Elemen | Deskripsi |
|---|---|
configuration |
Elemen akar dalam setiap file konfigurasi yang digunakan oleh runtime bahasa umum dan aplikasi .NET Framework. |
runtime |
Berisi informasi tentang pengikatan perakitan dan pengumpulan sampah. |
Komentar
Dalam .NET Framework versi 1.0 dan 1.1, WindowsIdentity tidak mengalir di titik asinkron yang ditentukan pengguna. Dimulai dengan .NET Framework versi 2.0, ada objek ExecutionContext yang berisi informasi tentang utas yang sedang dijalankan, dan mengalir di seluruh titik asinkron dalam domain aplikasi. WindowsIdentity disertakan dalam konteks eksekusi ini dan oleh karena itu juga mengalir di seluruh titik asinkron, yang berarti bahwa jika ada konteks peniruan, itu juga akan mengalir.
Dimulai dengan .NET Framework 2.0, Anda dapat menggunakan elemen <legacyImpersonationPolicy> untuk menentukan bahwa WindowsIdentity tidak mengalir di titik asinkron.
Nota
Runtime bahasa umum (CLR) menyadari operasi peniruan yang dilakukan hanya menggunakan kode terkelola, bukan peniruan yang dilakukan di luar kode terkelola, seperti melalui pemanggilan platform ke kode yang tidak dikelola atau melalui panggilan langsung ke fungsi Win32. Hanya objek WindowsIdentity terkelola yang dapat mengalir di seluruh titik asinkron, kecuali elemen alwaysFlowImpersonationPolicy telah diatur ke true (<alwaysFlowImpersonationPolicy enabled="true"/>). Mengatur elemen alwaysFlowImpersonationPolicy ke true menentukan bahwa identitas Windows selalu mengalir di seluruh titik asinkron, terlepas dari bagaimana peniruan dilakukan. Untuk informasi selengkapnya tentang mengalirnya peniruan tidak terkelola di seluruh titik asinkron, lihat <alwaysFlowImpersonationPolicy> Element.
Anda dapat mengubah perilaku default ini dengan dua cara lain:
Dalam kode terkelola berdasarkan per utas.
Anda dapat menekan alur 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 yang tidak dikelola (alih-alih executable terkelola sederhana) digunakan untuk memuat CLR, Anda dapat menentukan bendera khusus dalam panggilan ke fungsi Fungsi CorBindToRuntimeEx. Untuk mengaktifkan mode kompatibilitas untuk seluruh proses, atur parameter
flagsuntuk Fungsi CorBindToRuntimeEx ke STARTUP_LEGACY_IMPERSONATION.
Untuk informasi selengkapnya, lihat <alwaysFlowImpersonationPolicy> Elemen.
File Konfigurasi
Dalam aplikasi .NET Framework, elemen ini hanya dapat digunakan dalam file konfigurasi aplikasi.
Untuk aplikasi ASP.NET, alur peniruan dapat dikonfigurasi dalam file aspnet.config yang ditemukan di direktori <Windows Folder>\Microsoft.NET\Framework\vx.x.xxxx.
ASP.NET secara default menonaktifkan alur peniruan dalam file aspnet.config dengan menggunakan pengaturan konfigurasi berikut:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
</runtime>
</configuration>
Dalam ASP.NET, jika Anda ingin mengizinkan alur peniruan, Anda harus secara eksplisit menggunakan pengaturan konfigurasi berikut:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
Contoh
Contoh berikut menunjukkan cara menentukan perilaku warisan yang tidak mengalirkan identitas Windows di seluruh titik asinkron.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>