Aracılığıyla paylaş


Arayanlar güvenilen kısmen izin verme

Kod kitaplıkları karşılaşma ile ortak dil çalışma zamanı (clr) tümleştirme, burada kullanıcı tanımlı tür, saklı yordam, kullanıcı tanımlı bir işlev içeren bir derleme, kullanıcı tanımlı toplu, tetikleyici veya yardımcı sınıf genellikle başka bir derleme veya uygulama tarafından erişilen paylaşılmasıdır.Birden fazla uygulama tarafından paylaşılıyor olabilir olan kod kitaplıkları kesin adıyla imzalanmış olması gerekir.

Çalışma zamanı tarafından tam olarak güvenilir tek uygulamaları kod erişimi güvenliği sistemin açık olarak işaretlenmemiş bir paylaşılan yönetilen kod derleme erişmek için izin System.Security.AllowPartiallyTrustedCallers öznitelik.Kısmen güvenilen bir derleme (içinde kayıtlı bir SQL Server ile SAFE veya EXTERNAL_ACCESS izin küme) neden olan bu öznitelik olmadan derleme adı güçlü erişim girişimleri imzalı bir System.Security.SecurityException atılan için.Gördüğünüz hata iletisi aşağıdakine benzer:

Msg 6522, Level 16, State 1, Procedure usp_RSTest, Line 0
A .NET Framework error occurred during execution of user defined
routine or aggregate 'usp_RSTest':  System.Security.SecurityException: That assembly does not allow partially trusted callers.
System.Security.SecurityException: at
System.Security.CodeAccessSecurityEngine.ThrowSecurityException(
Assembly asm, PermissionSet granted,PermissionSet refused,
RuntimeMethodHandle rmh, SecurityAction action, Object demand,
IPermission permThatFailed) at
Microsoft.Samples.SqlServer.TestResultSet.Test()

İçinde kayıtlı tüm derlemelere öneririz SQL Server, bu derlemeleri eklenen dışında genel derleme önbelleği, işaretlenmiş AllowPartiallyTrustedCallers öznitelik kullanılarak yüklenen derlemeler tarafından böylece SQL Server birbirine erişebilir.Birleştirmeleri genel derleme önbelleği eklenmiş olan ayrıntılarıyla gözden geçirileceğini için emniyet eklemeden önce AllowPartiallyTrustedCallers öznitelik, gibi derleme kısmen güvenilen Arayanlara beklenmeyen bağlamları kullanılabilir olurBir derleme tam güvenilir yapılmaması gerekir (ile kayıtlı UNSAFE izin küme SQL Server).

Daha fazla bilgi için bkz: "kullanma kitaplıkları dan kısmen güvenilen kod" Bölüm'de..NET Framework Yazılım Geliştirme Seti.

Örnek

Birçok sunucu tarafı clr tümleştirme uygulamaları için yararlı olabilecek bir yardımcı sınıf varsayalım.Örneğin, onu temsil eden bir sınıf olabilir sonuçlar bir sorgu çağrılırken.Bu bileşen Paylaşımı'nı etkinleştirmek için bu yardımcı sınıf içinde ayrı bir derleme yerleştirilir.Sonra o Derleme clr tümleştirme nesneleri içeren çeşitli diğer derlemeler başvurulmaktadır.Bu yardımcı sınıf birçok farklı sunucu uygulamalarında kullanılır çünkü dikkatle gözden geçirilir ve herhangi bir güvenlik sorunları çözülmüş.The AllowPartiallyTrustedCallers attribute is then applied to the assembly that contains the utility class, so that CLR integration objects contained in assemblies marked with SAFE or EXTERNAL_ACCESS permission sets can use the utility class and methods, even though they are in a separate assembly.Nasıl gösteren bir örnek için AllowPartiallyTrustedCallers öznitelik kullanılır, sonuç kümesi örnek CodePlex; hepsine bakın Bkz: sql Server veritabanı altyapısı örneklerini için daha fazla bilgi...

Ayrıca bkz.

Kavramlar