11

Şu anda bir MVC site oluşturduğumuz bir projem var. Sitenin, özel işlevsellik sağlamak için üçüncü taraf dll'nin takılması gerektiğinden, kod erişim güvenliğini kullanması gerekir. Şimdi bu meclislerin tam güvene sahip olmasını istemiyoruz ve bu nedenle, .NET 4.0 'daki yeni güvenlik modelini kullanmak istemiyoruz. Bu gereklilikler nedeniyle, tüm montajlarımızı adlandırarak ve bunları gac'a yüklüyoruz. Bu montajlardan bazıları SecuritySafeCritical ve SecurityCritical türleri ve üyeleriyle karıştırılmış SecurityTransparent.Web sitesi derlemelerini yeni kod güvenlik modeliyle güvenli hale getirme

SecurityTransparent ve SecurityCritical derlemeleri, türleri ve üyeleri, bizim tarafımızdan olduğu gibi üçüncü taraf montaj geliştiricileri tarafından kullanılabilir.

Şimdi AllowPartiallyTrustedCallers özniteliği ile işaretlenmiş bir montaj ikamet eden bir sınıftan miras Global.asax dosyası ile bu sorun var.

Bu sınıf, HttpApplication öğesinden devralınır.

web.config'ümde, güven düzeyi şu anda Yüksek olarak ayarlanmıştır.

aşağıdaki hatayı alıyorum:

Inheritance security rules violated by type: 'ASP.global_asax'. Derived types must either match the security accessibility of the base type or be less accessible

Güvenlik modeli kullanılarak ve HttpApplication sınıf SecurityTransparent daha sıkı kural olması gerektiğini ne zaman çünkü devralma kuralları sanırım.

Özel sınıfımı SecuritySafeCritical özniteliğiyle işaretlemeyi denedim, ancak şanssız.

Umarız bazılarınızın bu soruna bir çözümü vardır.

cevap

1

HttpApplication alt tipine erişimi güvenli hale getirmeye çalışıyorsanız, güvenli olduğunu bildiğiniz ve üçüncü taraf geliştiricilerin varolan .NET'e güvenliği önyükleme yerine yerine üçüncü taraf geliştiricilere erişmesine olanak tanıyan özel bir arabirime soyutlamayı öneririm. türleri.

İlgili konular