Środowisko uruchomieniowe .NET Framework (CLR) zawiera mechanizmy, które wpływają na to, jaki kod może wykonywać operacje uprzywilejowane oraz kto (jaki użytkownik/rola) ma dostęp do określonych funkcji.
W .NET Framework 4.x kluczowym elementem jest Security Transparency Model. Model ten klasyfikuje kod na:
- Security-Critical – kod uprzywilejowany, mogący wykonywać operacje wrażliwe (np. wywołania wymagające podwyższonych uprawnień).
- Security-Transparent – kod ograniczony, który nie może wykonywać operacji krytycznych bezpośrednio.
- Security-Safe-Critical – "bezpieczny most" (kontrolowany interfejs) udostępniający ograniczone operacje krytyczne kodowi transparentnemu.
Drugim istotnym mechanizmem jest Role-Based Security (RBS), czyli autoryzacja oparta na tożsamości i rolach. W praktyce pozwala ona rozstrzygać, czy bieżący użytkownik (IIdentity/IPrincipal) należy do roli uprawnionej do wykonania danej operacji.
Pozostałe odpowiedzi są błędne, ponieważ:
- ASP.NET to framework aplikacji webowych, a nie ogólny mechanizm bezpieczeństwa wykonywania kodu w runtime CLR.
- Windows API to interfejs systemu operacyjnego; nie jest specyficznym modelem bezpieczeństwa .NET Framework runtime.
- "Mechanizm wykonywania aplikacji dla bibliotek klas" nie opisuje konkretnego, nazwanego modelu bezpieczeństwa; biblioteka klas jest typem projektu/artefaktu, a nie mechanizmem kontroli bezpieczeństwa.
Na egzaminie warto pamiętać o rozróżnieniu wersji: mechanizmy znane ze starszych wydań (np. CAS) mogą występować w dokumentacji historycznej, ale dla .NET Framework 4.x właściwe jest wskazanie modelu transparentności oraz kontroli opartej na rolach.