Code access permissions are permission objects that are used to protect resources and operations from unauthorized use. They are a fundamental part of the runtime's mechanism for enforcing security restrictions on managed code.
Each code access permission represents either:
All code access permissions can be requested and demanded by code, and the runtime decides which code access permissions, if any, to grant the code.
Each code access permission is derived from the CodeAccessPermission class, which means that all code access permissions have methods in common with each other, such as Demand, Assert, Deny, PermitOnly, IsSubsetOf, Intersect, and Union.