Class | Description |
---|---|
AllMembershipCondition | Membership condition that matches all code. |
ApplicationDirectory | The domain host may associate a file directory with an application domain. This evidence class provides the application directory, if set, as evidence for policy evaluation.
For a server (ASP+) application this is typically set to the directory containing the base page of the application; for a shell hosted application, the directory of the "main" EXE file. IE Host web applications do not have an application directory. To associate app directory with app domain we do the following: [C#] appDomain.SetData(AppDomainConfig.APPLICATION_BASE, "file://dir/subdir/"); |
ApplicationDirectoryMembershipCondition | Membership condition tests if the assembly is within the application directory or not. |
Evidence | Evidence is the set of information that constitutes input to security policy decisions, such as what permissions can be granted to code. Common forms of evidence include signatures and location of origin of code, but can potentially be anything.
Objects of any type that are recognized by security policy represent evidence. Security policy is composed of code groups; a particular assembly (the basic unit of code for granting security permissions) is a member of a code group if it satisfies its membership condition. Evidence is the set of inputs to policy that membership conditions use to determine what code groups an assembly belongs to. The Evidence class is a collection (ICollection) that holds a set of objects that represent evidence. (Herein big-e Evidence refers to the class; little-e evidence to objects that represent generic evidence.) The Evidence class holds two sets: host evidence and assembly evidence, corresponding to the source of the evidence. Policy can get evidence from two different sources in evaluating permissions for code. Host evidence is provided by the host, and can only be provided by hosts granted the SecurityPermission.ControlEvidence permission. Typically, this is evidence of location of origin of the code and digital signatures on the assembly. Evidence about location origin typically includes URL, Site, and Zone evidence. Signatures refer to software publisher (AuthentiCode?) and strong name identities. Both kinds of digital signature based identity are built into the assembly, but must be validated and passed to policy by the host; when loaded the security system verifies the signature and only if it is valid will the corresponding evidence be collected and passed to policy. Assembly evidence is part of the assembly itself. Developers or administrators can attach custom evidence to the assembly to extend the set of evidence for policy. (Note that signed assemblies may not be modified, and hence cannot have additional evidence added without breaking the existing signature.) |
FirstMatchCodeGroup | FirstMatchCodeGroup allows security policy to be defined that works similar to a switch {case 1: ...; case 2: ...; ... default: ...; } conditional structure. |
Hash | The Hash class provides evidence about the hash value for an assembly. A hash value represents a unique value corresponding to a particular set of bytes- rather than referring to an assembly by name, version, or other designation, a hash value designates the assembly unambiguously. (Names are subject to collisions where the same name is given to completely different code; different variations of code may accidentally be marked with the same version; however, even changing a single bit will result in a very different hash value.) |
HashMembershipCondition | Membership condition that matches only a certain assembly with specified hash code. |
PermissionRequestEvidence | This class defines evidence representing the permission requests (permissions the code requires as minimum to run, optionally can use if granted, and refused- should never be granted). |
PolicyException | The PolicyException class represents the exception that is raised when policy forbids code from running. This is typically because the code requests more permissions than the policy will grant or the policy is configured to prohibit running the code. |
PolicyLevel | Security policy is configured in a hierarchical manner from the highest point of common administration for an enterprise, possibly including subdivisions of the enterprise such as by local or organizational groups, down to individual machine policy. Successive lower levels of hierarchy represent further policy restrictions, but can never grant more permissions that allowed by higher levels. For V1 the following policy levels are implemented:
1. Machine: security policy for all managed code run on the machine 2. User: security policy for all managed code run by the user 3. Application domain: security policy for all managed code in an application A policy level consists of a set of code groups organized into a single rooted tree (see ICodeGroup) and a set of named permission sets that are referenced by the code groups to specify permissions to be granted to code belonging to the code group. |
PolicyStatement | The PolicyStatement class represents an enumeration of the result of a code group matching. |
Publisher | The Publisher class represents evidence of the AuthentiCode™ digital signature of a code assembly. The PublisherIdentityPermission derives from this evidence and can be used to confirm that calling code is signed by a specific software publisher. |
PublisherMembershipCondition | Security policy membership condition based on software publisher certificate. |
Site | The Site class represents evidence of the web site from which a code assembly originates. The SiteIdentityPermission derives from this evidence and can be used to confirm that calling code comes from a certain web site. |
SiteMembershipCondition | Security policy membership condition based on site of origin. |
SkipVerificationMembershipCondition | [To be supplied.] |
StrongName | The strong name class represents evidence of a unique, cryptographically strong name of a code assembly. The strong name consists of a public key, given name, and version parts. The public key corresponds to the publisher's private key which is kept secret, and with which the assembly must be signed in order for the strong name to be valid.
The StrongNameIdentityPermission derives from this evidence and can be used to confirm that calling code is in a particular strong named code assembly. |
StrongNameMembershipCondition | Security policy membership condition based on strong name. |
UnionCodeGroup | Code groups are the building blocks of code access security policy. Each policy level consists of a root code group that may have child code groups and so on forming a tree. Each code group has a membership condition that determines if a given assembly belongs to it or not based on the evidence for that assembly. Only code groups whose membership conditions match a given assembly and their children apply policy.
UnionCodeGroup is the most common type of code group, the policy statement of all matching child code groups (and by extension their children) are unioned together with the permission set of the matching parent code group. Thus, if its membership condition matches this code group will union its policy statement with those of all its children that also match the evidence. |
Url | The Url class represents evidence of the URL from which a code assembly originates. The UrlIdentityPermission derives from this evidence and can be used to confirm that calling code comes from a certain URL. |
URLMembershipCondition | Membership condition for security policy- code belongs to the group if it matches the specified URL. |
Zone | The Zone class represents evidence of the Internet security zone from which a code assembly originates. The ZoneIdentityPermission derives from this evidence and can be used to confirm that calling code comes from a certain zone. |
ZoneMembershipCondition | Security policy membership condition based on zone of origin. |
Interface | Description |
---|---|
ICodeGroup | Code groups are the building blocks of code access security policy. Each policy level consists of a root code group that may have child code groups and so on forming a tree. Each code group has a membership condition that determines if a given assembly belongs to it or not based on the evidence for that assembly. Only code groups whose membership conditions match a given assembly and their children apply policy.
When resolving policy code groups use their membership condition to test evidence for an assembly. For matching assemblies code groups then propagate policy evaluation to their child code groups according to rules of the specific type of code group.
|
IIdentityPermissionFactory | [To be supplied.] |
IMembershipCondition | This interface is implemented by all membership conditions.
A membership condition is associated with a code group in security policy and defines the test to determine if a given code assembly is a member of the code group or not. |
Enumeration | Description |
---|---|
PolicyStatementAttribute | Represents an enumeration that defines special attribute flags for security policy on code groups. |