Edit

Share via


SecurityRuleSet Enum

Definition

Identifies the set of security rules the common language runtime should enforce for an assembly.

C#
public enum SecurityRuleSet
Inheritance
SecurityRuleSet

Fields

Name Value Description
None 0

Unsupported. Using this value results in a FileLoadException being thrown.

Level1 1

Indicates that the runtime will enforce level 1 (.NET Framework version 2.0) transparency rules.

Level2 2

Indicates that the runtime will enforce level 2 transparency rules.

Remarks

This enumeration indicates which set of security rules the common language runtime should enforce for an assembly. For example, an assembly that is marked with [SecurityRules(SecurityRuleSet.Level1)] uses the .NET Framework version 2.0 transparency rules, where public security-critical types and members are treated as security-safe-critical outside the assembly. This requires security-critical types and members to perform a link demand for full trust to enforce security-critical behavior when they are accessed by external callers. Typically, level 1 rules should be used only for compatibility, such as for .NET Framework 2.0 assemblies. By default, .NET Framework 2.0 assemblies become level 2 assemblies when they are recompiled for the .NET Framework 4. To compile these assemblies as level 1, you must mark them explicitly as level 1. For more information about level 1 behavior, see Security-Transparent Code, Level 1. For information about level 2 behavior, see Security-Transparent Code, Level 2.

Applies to

Product Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

See also