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.
Organisasi dapat memiliki pasangan kunci yang dijaga ketat yang tidak dapat diakses pengembang setiap hari. Kunci umum sering tersedia, tetapi akses ke kunci privat hanya dibatasi untuk beberapa individu. Saat mengembangkan rakitan dengan nama kuat, setiap rakitan yang mereferensikan rakitan target yang memiliki nama kuat berisi token kunci publik yang digunakan untuk memberi nama kuat pada rakitan target. Ini mengharuskan kunci publik tersedia selama proses pengembangan.
Anda dapat menggunakan penandatanganan tertunda atau parsial saat waktu pembangunan untuk memesan ruang dalam file portable executable (PE) untuk tanda tangan nama yang kuat, tetapi menunda penandatanganan aktual sampai tahap selanjutnya, biasanya tepat sebelum pengiriman rakitan.
Untuk menunda-menandatangani komponen perangkat lunak:
Dapatkan bagian kunci publik dari pasangan kunci yang digunakan oleh organisasi yang akan melakukan penandatanganan akhir. Biasanya kunci ini dalam bentuk file .snk , yang dapat dibuat menggunakan alat Nama Kuat (Sn.exe) yang disediakan oleh Windows SDK.
Buat anotasi kode sumber untuk rakitan dengan dua atribut kustom dari System.Reflection:
AssemblyKeyFileAttribute, yang meneruskan nama file yang berisi kunci publik sebagai parameter ke konstruktornya.
AssemblyDelaySignAttribute, yang menunjukkan bahwa penandatanganan tertunda digunakan dengan mengirimkan true sebagai parameter ke konstruktornya.
Contohnya:
[assembly:AssemblyKeyFileAttribute("myKey.snk")]; [assembly:AssemblyDelaySignAttribute(true)];[assembly:AssemblyKeyFileAttribute("myKey.snk")] [assembly:AssemblyDelaySignAttribute(true)]<Assembly:AssemblyKeyFileAttribute("myKey.snk")> <Assembly:AssemblyDelaySignAttribute(True)>Pengkompilasi menyisipkan kunci publik ke dalam manifes perakitan dan mencadangkan ruang dalam file PE untuk tanda tangan nama lengkap yang kuat. Kunci publik yang sebenarnya harus disimpan saat rakitan dibangun sehingga rakitan lain yang merujuk rakitan ini dapat memperoleh kunci untuk disimpan dalam referensi rakitan mereka.
Karena rakitan tidak memiliki tanda tangan nama yang kuat yang valid, verifikasi tanda tangan tersebut harus dinonaktifkan. Anda dapat melakukan ini dengan menggunakan opsi -Vr dengan alat Nama Kuat.
Contoh berikut menonaktifkan verifikasi untuk rakitan yang disebut myAssembly.dll.
sn -Vr myAssembly.dllUntuk menonaktifkan verifikasi pada platform di mana Anda tidak dapat menjalankan alat Nama Kuat, seperti mikroprossesor Mesin RISC Tingkat Lanjut (ARM), gunakan opsi -Vk untuk membuat file registri. Impor file registri ke registri di komputer tempat Anda ingin menonaktifkan verifikasi. Contoh berikut membuat file registri untuk
myAssembly.dll.sn -Vk myRegFile.reg myAssembly.dllDengan opsi -Vr atau -Vk , Anda dapat secara opsional menyertakan file .snk untuk penandatanganan kunci pengujian.
Peringatan
Jangan mengandalkan nama yang kuat untuk keamanan. Mereka hanya menyediakan identitas unik.
Nota
Jika Anda menggunakan penandatanganan tertunda selama pengembangan dengan Visual Studio pada komputer 64-bit, dan Anda mengkompilasi assembly untuk Any CPU, Anda mungkin harus menerapkan opsi -Vr dua kali. (Di Visual Studio, CPU apa pun adalah nilai properti build Target Platform ; ketika Anda mengkompilasi dari baris perintah, itu adalah default.) Untuk menjalankan aplikasi Anda dari baris perintah atau dari File Explorer, gunakan versi 64-bit dariSn.exe (alat Nama Kuat) untuk menerapkan opsi -Vr ke rakitan. Untuk memuat rakitan ke Visual Studio pada waktu desain (misalnya, jika rakitan berisi komponen yang digunakan oleh rakitan lain di aplikasi Anda), gunakan alat nama kuat versi 32-bit. Ini karena pengkompilasi just-in-time (JIT) mengkompilasi rakitan ke kode asli 64-bit ketika rakitan dijalankan dari baris perintah, dan ke kode asli 32-bit ketika rakitan dimuat ke dalam lingkungan waktu desain.
Kemudian, biasanya tepat sebelum pengiriman, Anda menyerahkan rakitan ke otoritas penandatanganan organisasi Anda untuk penandatanganan nama kuat yang sebenarnya secara menggunakan opsi -R dengan alat Strong Name.
Contoh berikut menandatangani rakitan yang disebut myAssembly.dll dengan nama yang kuat menggunakan pasangan kunci sgKey.snk .
sn -R myAssembly.dll sgKey.snk