2011-11-25 7 views
14

Otrzymałem następujące ostrzeżenie kompilacji jako błąd podczas uaktualniania niektórych kodu ASP.NET z .NET 3.5: "System.Security.Permissions.SecurityAction.RequestMinimum" jest przestarzałe.W jaki sposób naprawić błąd "System.Security.Permissions.SecurityAction.RequestMinimum" jest przestarzały?

atrybut ma pszczeli stosowany na poziomie assebly:

[assembly: System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.RequestMinimum, Execution=true)] 

Również kod wykorzystuje P & P Web Client Software Factory, specificly biblioteki ObjectBuilder.WCSFExtensions. Również kod dostarcza pewnych implementacji dostawców roli.

Należy pamiętać, że ten kod jest używany jako kod Framework w innych projektach, więc trudno określić, jakie wymagania bezpieczeństwa mogą być.


Więc milion dolar pytanie brzmi:

Jakie wartości należy stosować do wyliczenia "System.Security.Permissions.SecurityAction"?

Czy istnieje inne podejście do stosowania tego atrybutu bezpieczeństwa?

Odpowiedz

13

Czy przeczytałeś pełne ostrzeżenie kompilatora lub odwiedziłeś link, który zawiera? "Nagi" CLR nie ogranicza już uprawnień CAS w .NET 4.0, chyba że przełączysz przełącznik "starszej wersji", więc nie ma zamiennika dla Twojego żądaniaMinimum. Klasa SecurityPermissionAttribute na poziomie zespołu powinna zostać usunięta, a nie zmodyfikowana.

Bardziej szczegółowe wyjaśnienie zmian 4.0 CAS, niż pojawia się w MSDN, patrz: http://blogs.msdn.com/b/shawnfa/archive/2009/05/21/security-policy-in-the-v4-clr.aspx i http://blogs.msdn.com/b/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspx.

+0

Dzięki Nicole, artykuły, o których Pan wspomniał, zapewniają wyraźniejsze tło niż dokumentacja MSDN (która była wyczerpująca, ale nie dała wyraźnego/oczywistego oświadczenia mówiącego: usunąć atrybut). Nie byłem pewien, jakie będą konsekwencje w usunięciu tego atrybutu. W końcu zdecydowałem się opuścić ten kod w 3.5 na teraz. – Schalk

+0

Interfejs RequestMinimum na poziomie zespołu po prostu instruuje hosta, aby nie ładował zespołu, jeśli nie uzyskał on określonego uprawnienia. ŻądanieMinimum dla uprawnienia do wykonywania jest prawie bezużyteczne, ponieważ host nie uruchomi żadnego kodu w zespole, chyba że ma uprawnienia do wykonywania. Jedyną różnicą w zachowaniu w czasie wykonywania, gdy uprawnienie nie zostało przyznane, są szczegóły wyjątku i jego wynik. Jednak niezależnie od tego, czy atrybut jest obecny, czy nie, zobaczysz wyjątek przed wykonaniem jakiegokolwiek kodu w zespole. –

Powiązane problemy