2009-08-30 9 views
5

Właśnie przeczytać poniższe informacje w opisie CLI dotyczące SecurityExceptions na metoda nazywa:Kiedy program .NET CLR ocenia atrybuty zabezpieczeń?

kontroli bezpieczeństwa mogą wystąpić, gdy CIL jest konwertowany do natywnego kodu niż przy starcie.

W jaki sposób implementacja Microsoft radzi sobie z tym?

Jeśli, na przykład, tylko pewna grupa użytkowników ma dostęp do niektórych klas, a ja umieściłem atrybut bezpieczeństwa sprawdzający dla tej grupy.

Jeśli użytkownik uruchomi aplikację, jest on podważany i prawdopodobnie kontrole bezpieczeństwa są wykonywane w tym czasie, a nie w czasie wykonywania.

Jeśli tak, to czy jitter cache obraz macierzysty, aby mógł stwarzać problemy, jeśli zmienię grupę użytkownika w późniejszym czasie (tj. Buforowany obraz macierzysty nie odzwierciedla jego zaktualizowanych uprawnień)? Czy też jest on uruchamiany za każdym razem, gdy jest uruchamiany, chyba że wstępnie zainstalowałem obraz natywny? Nadal nie jestem pewien, jak działa pamięć podręczna obrazu macierzystego.

+0

Dobre pytanie! Będę obserwować odpowiedzi. :-) –

Odpowiedz

2

Każdy obraz po zerwaniu jest ważny tylko w tym samym kontekście zabezpieczeń, w którym został wygenerowany.

Dotyczy to zarówno zespołów pamięci podręcznej, jak i ngen: ed.

Gdy tylko program ładujący zobaczy, że obecny kontekst zabezpieczeń różni się, załaduje obraz IL i JIT zespół.

Dlatego nie można pobrać obrazu na komputer i przekazać go komuś innemu.

Dotyczy to również złożeń rdzenia .NET. Są one ngen: ed (lub umieszczone w kolejce ngen) podczas instalacji, aby dopasować je do kontekstu zabezpieczeń na komputerze.

Możesz przeczytać więcej na ten temat tutaj: msdn ngen.exe

+0

Dzięki! Teraz znowu mogę spać spokojnie. :) – Botz3000

Powiązane problemy