Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir kuruluş, geliştiricilerin günlük olarak erişemeyecekleri, yakından korunan bir anahtar çifti içerebilir. Ortak anahtar genellikle kullanılabilir, ancak özel anahtara erişim yalnızca birkaç kişi ile sınırlıdır. Tanımlayıcı adlara sahip derlemeler geliştirirken, tanımlayıcı adlı hedef derlemeye başvuran her derleme, hedef derlemeye tanımlayıcı bir ad vermek için kullanılan ortak anahtarın belirtecini içerir. Bu, geliştirme işlemi sırasında ortak anahtarın kullanılabilir olmasını gerektirir.
Derleme zamanında gecikmeli veya kısmi imzalama kullanarak taşınabilir yürütülebilir dosyada (PE) güçlü ad imzası için yer ayırabilir, ancak gerçek imzalamayı genellikle derlemeyi göndermeden hemen önceki bir aşamada erteleyebilirsiniz.
Derlemeyi gecikmeli olarak imzalamak için:
Anahtar çiftinin ortak anahtar kısmını, nihai imzalamayı yapacak olan kuruluştan alın. Bu anahtar genellikle Windows SDK tarafından sağlanan Tanımlayıcı Ad aracı (Sn.exe) kullanılarak oluşturulabilen bir .snk dosyası biçimindedir.
Derlemenin kaynak kodunu, System.Reflection içinden iki özel öznitelik ile açıklayın:
AssemblyKeyFileAttribute, ortak anahtarı içeren dosyanın adını oluşturucusunun parametresi olarak geçirir.
AssemblyDelaySignAttribute, oluşturucusna parametre olarak true geçirilerek gecikmeli imzalamanın kullanıldığını gösterir.
Örneğin:
[assembly:AssemblyKeyFileAttribute("myKey.snk")]; [assembly:AssemblyDelaySignAttribute(true)];[assembly:AssemblyKeyFileAttribute("myKey.snk")] [assembly:AssemblyDelaySignAttribute(true)]<Assembly:AssemblyKeyFileAttribute("myKey.snk")> <Assembly:AssemblyDelaySignAttribute(True)>Derleyici ortak anahtarı derleme bildirimine ekler ve PE dosyasında tam tanımlayıcı ad imzası için yer ayırır. Diğer derlemelerin bu derlemeye başvurarak kendi derleme başvurularında depolanacak anahtarı alabilmesi için, derleme oluşturulurken gerçek ortak anahtarın depolanması gerekir.
Derlemenin geçerli bir tanımlayıcı ad imzası olmadığından, bu imzanın doğrulanması kapatılmalıdır. Bunu, Tanımlayıcı Ad aracıyla -Vr seçeneğini kullanarak yapabilirsiniz.
Aşağıdaki örnek ,myAssembly.dlladlı bir derleme için doğrulamayı kapatır.
sn -Vr myAssembly.dllGelişmiş RISC Makinesi (ARM) mikro işlemcileri gibi Tanımlayıcı Ad aracını çalıştıramamanıza neden olan platformlarda doğrulamayı kapatmak için -Vk seçeneğini kullanarak bir kayıt defteri dosyası oluşturun. Kayıt defteri dosyasını, doğrulamayı kapatmak istediğiniz bilgisayardaki kayıt defterine aktarın. Aşağıdaki örnek için
myAssembly.dllbir kayıt defteri dosyası oluşturur.sn -Vk myRegFile.reg myAssembly.dll-Vr veya -Vk seçeneğiyle, isteğe bağlı olarak test anahtarı imzalama için bir .snk dosyası ekleyebilirsiniz.
Uyarı
Güvenlik için güçlü adlara güvenmeyin. Yalnızca benzersiz bir kimlik sağlar.
Uyarı
64 bit bir bilgisayarda Visual Studio ile geliştirme sırasında gecikmeli imzalama kullanıyorsanız ve Any CPU için bir derleme derlerseniz - Vr seçeneğini iki kez uygulamanız gerekebilir. (Visual Studio'da Herhangi bir CPU , Platform Hedefi derleme özelliğinin değeridir; komut satırından derleme yaptığınızda varsayılan değerdir.) Uygulamanızı komut satırından veya Dosya Gezgini'nden çalıştırmak içinSn.exe 64 bit sürümünü (Tanımlayıcı Ad aracı) kullanarak -Vr seçeneğini derlemeye uygulayın. Derlemeyi tasarım zamanında Visual Studio'ya yüklemek için (örneğin, derleme uygulamanızdaki diğer derlemeler tarafından kullanılan bileşenler içeriyorsa), tanımlayıcı ad aracının 32 bit sürümünü kullanın. Bunun nedeni, derleme komut satırından çalıştırıldığında tam zamanında (JIT) derleyicinin derlemeyi 64 bit yerel koda ve derleme tasarım zamanı ortamına yüklendiğinde 32 bit yerel koda derlemesidir.
Daha sonra, genellikle göndermeden hemen önce, Tanımlayıcı Ad aracıyla -R seçeneğini kullanarak gerçek tanımlayıcı ad imzalama için derlemeyi kuruluşunuzun imzalama yetkilisine gönderirsiniz.
Aşağıdaki örnek, myAssembly.dll adlı bir derlemeyi kesin bir adla imzalamak için sgKey.snk anahtar çiftini kullanır.
sn -R myAssembly.dll sgKey.snk