Freigeben über


SecurityManager.PolicyHierarchy-Methode

Stellt einen Enumerator für den Zugriff auf die einzelnen Ebenen der Hierarchie der Sicherheitsrichtlinien bereit, z. B. Computerrichtlinie und Benutzerrichtlinie.

Namespace: System.Security
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function PolicyHierarchy As IEnumerator
'Usage
Dim returnValue As IEnumerator

returnValue = SecurityManager.PolicyHierarchy
public static IEnumerator PolicyHierarchy ()
public:
static IEnumerator^ PolicyHierarchy ()
public static IEnumerator PolicyHierarchy ()
public static function PolicyHierarchy () : IEnumerator

Rückgabewert

Ein IEnumerator für PolicyLevel-Objekte, aus denen sich die Hierarchie der Sicherheitsrichtlinien zusammensetzt.

Ausnahmen

Ausnahmetyp Bedingung

SecurityException

Der diese Methode aufrufende Code verfügt nicht über SecurityPermissionFlag.ControlPolicy.

Hinweise

Der zurückgegebene Enumerator stellt aufeinander folgende PolicyLevel-Objekte bereit, die die Richtlinie auf der entsprechenden Hierarchieebene (Computer, Benutzer, Organisation, Anwendungsdomäne) darstellen. Diese Objekte sind die aktiven Richtlinienobjekte. An diesen Objekte vorgenommene Änderungen können zu unvorhersehbaren Ergebnissen führen.

Die Mindesthierarchie von Richtlinien umfasst eine Computerebene, eine Organisationsebene und eine Benutzerebene. Die Hierarchie kann jedoch weitere Ebenen enthalten.

Beispiel

Das vollständige Beispiel finden Sie unter dem Thema zur SecurityManager-Klasse.

Private Shared Sub DeleteCustomCodeGroups()
    ' Delete the custom code groups that were created.
    Dim policyEnumerator As IEnumerator = SecurityManager.PolicyHierarchy()
    While policyEnumerator.MoveNext()
        Dim machineLevel As PolicyLevel = CType(policyEnumerator.Current, PolicyLevel)
        Dim childCodeGroups As IList = machineLevel.RootCodeGroup.Children
        Dim childGroups As IEnumerator = childCodeGroups.GetEnumerator()
        While childGroups.MoveNext()
            Dim thisCodeGroup As CodeGroup = CType(childGroups.Current, CodeGroup)
            If thisCodeGroup.Name = "MyCompanyCodeGroup" Then
                machineLevel.RootCodeGroup.RemoveChild(thisCodeGroup)
            End If
        End While
    End While
End Sub 'DeleteCustomCodeGroups
private static void DeleteCustomCodeGroups()
{
    // Delete the custom code groups that were created.
    IEnumerator policyEnumerator = SecurityManager.PolicyHierarchy();
    while(policyEnumerator.MoveNext())
    {
        PolicyLevel machineLevel = (PolicyLevel)policyEnumerator.Current;
        IList childCodeGroups = machineLevel.RootCodeGroup.Children;
        IEnumerator childGroups = childCodeGroups.GetEnumerator();
        while(childGroups.MoveNext())
        {
            CodeGroup thisCodeGroup = (CodeGroup)childGroups.Current;
            if( thisCodeGroup.Name == "MyCompanyCodeGroup")
            {
                machineLevel.RootCodeGroup.RemoveChild(thisCodeGroup);
            }
        }
    }
}
void DeleteCustomCodeGroups()
{
   // Delete the custom code groups that were created.
   IEnumerator^ policyEnumerator = SecurityManager::PolicyHierarchy();
   while ( policyEnumerator->MoveNext() )
   {
      PolicyLevel^ machineLevel = dynamic_cast<PolicyLevel^>(policyEnumerator->Current);
      IList^ childCodeGroups = machineLevel->RootCodeGroup->Children;
      IEnumerator^ childGroups = childCodeGroups->GetEnumerator();
      while ( childGroups->MoveNext() )
      {
         CodeGroup^ thisCodeGroup = dynamic_cast<CodeGroup^>(childGroups->Current);
         if ( thisCodeGroup->Name->Equals( "MyCompanyCodeGroup" ) )
         {
            machineLevel->RootCodeGroup->RemoveChild( thisCodeGroup );
         }
      }
   }
}
private static void DeleteCustomCodeGroups()
{
    // Delete the custom code groups that were created.
    IEnumerator policyEnumerator = SecurityManager.PolicyHierarchy();
    while (policyEnumerator.MoveNext()) {
        PolicyLevel machineLevel = 
            ((PolicyLevel)(policyEnumerator.get_Current()));
        IList childCodeGroups = 
            machineLevel.get_RootCodeGroup().get_Children();
        IEnumerator childGroups = childCodeGroups.GetEnumerator();
        while (childGroups.MoveNext()) {
            CodeGroup thisCodeGroup = 
                ((CodeGroup)(childGroups.get_Current()));
            if (thisCodeGroup.get_Name().equalsIgnoreCase
                    ("MyCompanyCodeGroup")) {
                machineLevel.get_RootCodeGroup()
                    .RemoveChild(thisCodeGroup);
            }
        }
    }
} //DeleteCustomCodeGroups

.NET Framework-Sicherheit

  • SecurityPermission  zum Anzeigen und Ändern von Richtlinien. Zugeordnete Enumeration: SecurityPermissionFlag.ControlPolicy

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

Siehe auch

Referenz

SecurityManager-Klasse
SecurityManager-Member
System.Security-Namespace