Fiecare cerere este axat pe CLR (adică fiecare aplicație gestionată) trebuie să interacționeze cu sistemul său de securitate. Atunci când este încărcat o aplicație gestionată, unitatea sa îi dă automat setul permisiune. Aceste permisiuni sunt setate de site-ul de securitate locală sau izolarea de aplicare. În funcție de permisiunile aplicației, sau a alerga, sau provoacă o excepție de securitate.
Site-ul Web implicit pentru aplicațiile clasice permite rularea de cod pentru a rula în modul de încredere deplină. Din acest motiv, în cazul în care cererea este proiectat pentru computere desktop, acesta are un set nelimitat de permisiuni. Alte noduri sau „Sandbox“ oferă un set limitat de permisiuni pentru aplicație. Setați permisiunile pot varia de la site la site-ul, astfel încât cererea ar trebui să fie proiectate pentru a utiliza numai acele permise, ceea ce a permis nodul țintă.
Pentru a scrie aplicații eficiente de direcționare CLR, trebuie să fie familiarizați cu următoarele principii de cod de control al accesului.
-Type sigur cod. De tip sigur de cod - un cod care accesează numai tipurile strict definite, moduri permise. De exemplu, având o referință validă la obiect, cod de tip în condiții de siguranță poate avea acces la memorie la decalaje fixe corespunzătoare reale pentru membri domenii. În cazul în care codul de acces de memorie la decalaje arbitrare în afara intervalului de memorie aparținând domeniilor deschise ale acestui obiect, acesta nu este de tip în condiții de siguranță. Pentru a putea să se bucure de beneficiile de control al accesului pentru codul, trebuie să utilizați un compilator care generează un cod de tip în condiții de siguranță verificabile. Pentru detalii, a se vedea. În secțiunea de scriere de cod de tip în condiții de siguranță verificabile.
Forțată și sintaxa declarativa. Codul care vizează mediu CRJ, pot interacționa cu sistemul de securitate prin solicitarea permisiunea de la cerințele de permisiuni anumitor apelanților, și prin redefinirea unora dintre parametrii de securitate (dacă este suficientă putere). două forme diferite de sintaxă pot fi folosite pentru a interactiona cu sistemul de securitate .NET Framework: sintaxa declarativă și sintaxa forțată. apelurile declarative sunt efectuate cu ajutorul atributelor; apelurile de executare se efectuează cu ajutorul noilor instanțe de clase din codul. Unele apeluri pot fi efectuate numai cu forța, altele - doar declarativ, iar unele - în nici un fel.
Clasa de bibliotecă. Safe Class Library utilizează cerințele de securitate pentru a se asigura că permisiunile obiect apel la resursele furnizate de bibliotecă. De exemplu, o bibliotecă de clasă în condiții de siguranță poate conține o metodă pentru a crea fișierul, care va necesita ca cauza obiectelor sale au permisiuni pentru a crea fișiere. .NET Framework include o bibliotecă de clasă sigură. Ai nevoie să ia în considerare permisele necesare pentru accesul la orice bibliotecă, utilizate de codul. Pentru detalii, a se vedea. În clasa de utilizare sigură biblioteci mai târziu în această secțiune.
Codul transparent. În .NET Framework 4 și mai târziu, în plus față de determinarea permisiunile corespunzătoare necesare pentru a determina dacă acest cod ar trebui să ruleze ca transparentă în ceea ce privește securitatea. Codul transparent în termeni de securitate nu pot apela sau tipuri de membri, care sunt definite ca fiind critice în ceea ce privește siguranța. Această regulă se aplică cererilor cu încredere atât completă și parțială. Pentru mai multe informații, consultați. Cod de siguranță-transparent.
Controlul accesului pentru codul și codul parțial de încredere
Această politică se aplică la toate versiunile .NET Framework, cu excepția .NET Framework, ca parte a Silverlight.