PolicyLevelType-Enumeration
Gibt den Typ für eine Richtlinienebene für verwalteten Code an.
Namespace: System.Security
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration PolicyLevelType
'Usage
Dim instance As PolicyLevelType
[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum PolicyLevelType
[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum class PolicyLevelType
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public enum PolicyLevelType
SerializableAttribute
ComVisibleAttribute(true)
public enum PolicyLevelType
Member
Membername | Beschreibung | |
---|---|---|
AppDomain | Die Sicherheitsrichtlinie für den gesamten verwalteten Code in einer Anwendung. | |
Enterprise | Die Sicherheitsrichtlinie für den gesamten verwalteten Code in einem Unternehmen. | |
Machine | Die Sicherheitsrichtlinie für den gesamten verwalteten Code, der auf dem Computer ausgeführt wird. | |
User | Die Sicherheitsrichtlinie für den gesamten verwalteten Code, der vom Benutzer ausgeführt wird. |
Hinweise
Die höchste Sicherheitsrichtlinienebene ist die unternehmensweite Ebene. Niedrigere Hierarchieebenen stellen weitere Richtlinienbeschränkungen dar, die Anzahl der von höheren Ebenen erteilten Berechtigungen kann jedoch nicht ausgeweitet werden. Die Reihenfolge der Richtlinienebenen in der Hierarchie lautet wie folgt:
1. Unternehmen
2. Computer
3. Benutzer
4. Anwendungsdomäne
Beispiel
In diesem Beispiel wird veranschaulicht, wie die PolicyLevelType-Enumeration zum Abfragen von Informationen aus den Verwaltungseinstellungen für die Codezugriffssicherheit verwendet wird.
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>
using namespace System;
using namespace System::Collections;
using namespace System::Security;
using namespace System::Security::Policy;
// This helper method returns a PolicyLevel that corresponds to
// the specified PolicyLevelType.
PolicyLevel^ GetPolicyLevel(PolicyLevelType policyLevelType)
{
IEnumerator^ policyLevels = SecurityManager::PolicyHierarchy();
// Map the policy level type to the policy level collection.
int levelCount = 0;
switch (policyLevelType)
{
case PolicyLevelType::Enterprise: levelCount = 0; break;
case PolicyLevelType::Machine: levelCount = 1; break;
case PolicyLevelType::User: levelCount = 2; break;
case PolicyLevelType::AppDomain: levelCount = 3; break;
}
for (; levelCount >= 0; levelCount--)
{
policyLevels->MoveNext();
}
return (PolicyLevel^) policyLevels->Current;
}
void DisplayIntranetZonePermissionSetForPolicyLevel(
PolicyLevelType policyLevelType)
{
// Create an Evidence object that contains the intranet zone.
Evidence^ intranetEvidence = gcnew Evidence();
intranetEvidence->AddHost(gcnew 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^ resolvedPolicy = GetPolicyLevel(policyLevelType)->
Resolve(intranetEvidence);
// Show the calculated policy statement.
Console::WriteLine(
"---> Intranet zone permission set for {0} policy level:",
policyLevelType);
Console::WriteLine(resolvedPolicy->PermissionSet);
}
int main()
{
DisplayIntranetZonePermissionSetForPolicyLevel(PolicyLevelType::User);
Console::WriteLine();
DisplayIntranetZonePermissionSetForPolicyLevel(PolicyLevelType::Machine);
}
// 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>
Plattformen
Windows 98, Windows 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
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0