PolicyLevelType Enumeration
.NET Framework 3.0
Specifies the type of a managed code policy level.
Namespace: System.Security
Assembly: mscorlib (in mscorlib.dll)
Assembly: mscorlib (in mscorlib.dll)
The highest level of security policy is enterprise-wide. Successive lower levels of hierarchy represent further policy restrictions, but can never grant more permissions than allowed by higher levels. The policy levels in order are the following.
1. Enterprise
2. Machine
3. User
4. Application domain
This example shows how to use the PolicyLevelType enumeration to query information from the code access security administration settings.
using System; using System.Collections; using System.Security; using System.Security.Policy; public sealed class App { static void Main() { DisplayIntranetZonePermissionSetForPolicyLevel(PolicyLevelType.User); Console.WriteLine(); DisplayIntranetZonePermissionSetForPolicyLevel(PolicyLevelType.Machine); } static void DisplayIntranetZonePermissionSetForPolicyLevel(PolicyLevelType policyLevelType) { // Create an Evidence object that contains the intranet zone. Evidence e = new Evidence(); e.AddHost(new Zone(SecurityZone.Intranet)); // Get the policy level for the specified policy level type and then // resolve the evidence against it to get the policy statement. PolicyStatement ps = GetPolicyLevel(policyLevelType).Resolve(e); // Show the calculated policy statement. Console.WriteLine("---> Intranet zone permission set for {0} policy level:", policyLevelType.ToString()); Console.WriteLine(ps.PermissionSet); } // This helper method returns a PolicyLevel that corresponds to the specified PolicyLevelType. static PolicyLevel GetPolicyLevel(PolicyLevelType policyLevelType) { IEnumerator policyLevels = SecurityManager.PolicyHierarchy(); // Map the policy level type to the policy level collection. int levelCnt = 0; switch (policyLevelType) { case PolicyLevelType.Enterprise: levelCnt = 0; break; case PolicyLevelType.Machine: levelCnt = 1; break; case PolicyLevelType.User: levelCnt = 2; break; case PolicyLevelType.AppDomain: levelCnt = 3; break; } for (; levelCnt >= 0; levelCnt--) policyLevels.MoveNext(); return (PolicyLevel) policyLevels.Current; } } // This code produces the following output. // // ---> Intranet Zone permission set for User policy level: // <PermissionSet class="System.Security.PermissionSet" // version="1" // Unrestricted="true"/> // ---> Intranet Zone permission set for Machine policy level: // <PermissionSet class="System.Security.PermissionSet" // version="1"> // <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, // Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1" // Read="USERNAME"/> // <IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, // Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1" // Unrestricted="true"/> // <IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib,// Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1" // Allowed="AssemblyIsolationByUser" // UserQuota="9223372036854775807" // Expiry="9223372036854775807" // Permanent="True"/> // <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, // Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1" // Flags="ReflectionEmit"/> // <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, // Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1" // Flags="Assertion, Execution, BindingRedirects"/> // <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.3600.0, // Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1" // Unrestricted="true"/> // <IPermission class="System.Net.DnsPermission, System, Version=2.0.3600.0, Culture=neutral, // PublicKeyToken=b77a5c561934e089" // version="1" // Unrestricted="true"/> // <IPermission class="System.Windows.Forms.WebBrowserPermission, System, Version=2.0.3600.0, // Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1" // Level="Restricted"/> // <IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, // Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" // version="1" // Level="DefaultPrinting"/> // <IPermission class="System.Diagnostics.EventLogPermission, System, Version=2.0.3600.0, // Culture=neutral, PublicKeyToken=b77a5c561934e089" // version="1"> // <Machine name="." // access="Instrument"/> // </IPermission> // </PermissionSet>
Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.Community Additions
ADD
Show: