2012-06-07 7 views
6

Mam zestaw .net z metodą, która nie jest weryfikowalna.C# nie można zweryfikować kodu bez niezarejestrowanego zezwolenia

Próbuję załadować ten zespół w domenie aplikacji Sandbox.

Jeśli załaduję się z weryfikacją pominięcia, ale nie z niezarządzanym, otrzymuję wyjątek weryfikacji. Tak:

new SecurityPermission(SecurityPermissionFlag.Execution | 
         SecurityPermissionFlag.SkipVerification); 

Gdybym załadować z niekontrolowana zgody to działa, ale domena aplikacja nie będzie wystarczająco „piaskownicy”.

new SecurityPermission(SecurityPermissionFlag.Execution | 
         SecurityPermissionFlag.SkipVerification | 
         SecurityPermissionFlag.UnmanagedCode); 

Również - Mam zainstalowany .NET Framework 4, i aby pracować nad musiałem przełączyć się transperancy modelu poziomie 1, tak jak poniżej:

[assembly:SecurityRules(SecurityRuleSet.Level1)] 

Więc moje pytanie brzmi:

  1. Czy istnieje sposób uruchamiania niezweryfikowanego kodu bez uprawnienia UnamangedCode.
  2. Czy istnieje sposób na wykonanie powyższej pracy przy użyciu zestawu reguł bezpieczeństwa Level2.

Dzięki!

+0

Aplikacja jest piaskownica lub jej nie ma. Co oznacza "nie wystarczy piaskownicy"? Wygląda na to, że potrzebujesz zestawu, który można zweryfikować zamiast próbować utworzyć obejście. –

+0

W tej piaskownicy muszę chronić użytkownika przed samym sobą, a nie przed potencjalnym zagrożeniem. Właśnie dlatego nie martwię się niepotwierdzonym kodem. Ale martwię się o niezarządzany kod. W każdym razie, nie mogę tego zweryfikować z powodu niektórych frameworków .net, których używam. – ravyoli

Odpowiedz

1

Czy istnieje sposób na uruchomienie niezweryfikowanego kodu bez zgody UnamangedCode .

Nawet gdyby tak było, w tym momencie zrezygnowałbyś z jakiegokolwiek zabezpieczenia. Kod, którego nie można zweryfikować, ma taką samą moc jak kod niezarządzany. Pozwala na przykład na złamanie systemu typów.

Nie ma sensu mieć SkipVerification, a nie UnmanagedCode (lub na odwrót). Te dwa są równoważne i uważam, że jest to błąd w strukturze, w której oba istnieją.

Powiązane problemy