2013-11-27 11 views
7

Güvenlik açısından güvenilir yöntem 'PayPal.UserAgentHeader.get_OperatingSystemFriendlyName()' ile güvenlik açısından kritik yönteme erişmek için 'System.Management.ManagementObjectSearcher..ctor (System.String)' başarısız oldu .Güvenlik açısından kritik yönteme erişmek için güvenlik saydam yönteminin kullanılması başarısız oldu

Assembly 'PayPalCoreSDK, Version=1.4.1.0, Culture=neutral, PublicKeyToken=null' is partially trusted, which causes the CLR to make it entirely security transparent regardless of any transparency annotations in the assembly itself. In order to access security critical code, this assembly must be fully trusted. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MethodAccessException: Attempt by security transparent method 'PayPal.UserAgentHeader.get_OperatingSystemFriendlyName()' to access security critical method 'System.Management.ManagementObjectSearcher..ctor(System.String)' failed. 

Assembly 'PayPalCoreSDK, Version=1.4.1.0, Culture=neutral, PublicKeyToken=null' is partially trusted, which causes the CLR to make it entirely security transparent regardless of any transparency annotations in the assembly itself. In order to access security critical code, this assembly must be fully trusted. 

This stackoverflow answer sınıfa [SecuritySafeCritical] özellik ekleyerek bahseder, ancak bu durumda oynayan sınıf Nuget üzerinden yüklenen bir DLL içindedir.

Bu özel durumu atlamak için kullanabileceğim genel ayarlar var mı?

cevap

12

web.config için aşağıdaki etiketi ekleyin: barındırma hizmeti

<configuration> 
    <system.web> 
     <trust level="Full" /> 
    </system.web> 
</configuration> 

sunucuları muhtemelen bir orta güven seviyesi ile kurulur. 'PayPalCoreSDK', uygulamanızın tam bir güven düzeyiyle çalışmasını gerektirir.

+1

teşekkür ederiz. Güven seviyesi zaten dolu. DLL'leri imzalayarak, bazı güvenlik duyarlı kodları değiştirerek ve bunları yeniden derleyerek bu sorunu çözdüm. PayPal SDK'larının açık kaynak olmasına ya da SOL olacağına sevindim! – Zerkey

+1

"Güvenlikle ilgili bazı kodları nasıl değiştirirdiniz?" Şu anda bu sorunu yaşıyorum ve benim DLL'leri imzalı, güven = dolu, ve hala bunu işe alamıyorum. – antman1p

6

bu

// added because of security transparency change in framework 4.0 
[assembly: SecurityRules(SecurityRuleSet.Level1)] 

Assemblyinfo.cs ekleyerek bu benim durumumda bazı paket geçersiz kılma çözeltide bir Nuget paketleri yönetilen zaman bir sorun olmuştur yılında işi benim adıma ....

0

yaptı Ana web sitesi projesinde System.Web.Mvc montaj sürümü bağlanması. 4.0.0.0'a geri yükleyin (5.0 yüklü vardı). Değişikliği fark etmedim çünkü Mvc v4.0 GAC ile kuruldu ve erişilebilir oldu. Geri dön

0

Çözümde çok sayıda başvurulan projeyle birlikte bir brownfield uygulaması üzerinde çalışıyordum. Bir proje 4.6.1 yerine .NET 4.0 olarak ayarlandı ve bunun olabileceğini düşündüm, ama bu sorun değildi. Ben eklemek zorunda:

[assembly:AllowPartiallyTrustedCallers] 

"güvenlik kritik" yöntemi içeren projede assembly.cs dosyaya ve ben de yaptım

using System.Security; 

eklendi kadar benimle mutlu değildi Numara.

Joey

1

4.6.1 çerçeveye wpftoolkit 3.5 çerçevesini yükselttikten sonra AssemblyInfo.cs aşağıdaki Güvenlik kuralları sorunu çözmek: cevap için

// added because of security transparency change in framework 4.0 
[assembly: SecurityRules(SecurityRuleSet.Level1)] 
İlgili konular