Freigeben über


ZoneIdentityPermission.Union-Methode

Erstellt eine Berechtigung als Gesamtmenge der aktuellen und der angegebenen Berechtigung.

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

Syntax

'Declaration
Public Overrides Function Union ( _
    target As IPermission _
) As IPermission
'Usage
Dim instance As ZoneIdentityPermission
Dim target As IPermission
Dim returnValue As IPermission

returnValue = instance.Union(target)
public override IPermission Union (
    IPermission target
)
public:
virtual IPermission^ Union (
    IPermission^ target
) override
public IPermission Union (
    IPermission target
)
public override function Union (
    target : IPermission
) : IPermission

Parameter

  • target
    Eine Berechtigung, die mit der aktuellen Berechtigung kombiniert werden soll. Diese muss von demselben Typ wie die aktuelle Berechtigung sein.

Rückgabewert

Eine neue Berechtigung, die die Gesamtmenge der aktuellen und der angegebenen Berechtigung darstellt.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

Der target-Parameter ist nicht NULL (Nothing in Visual Basic) und gehört nicht zum gleichen Typ wie die aktuelle Berechtigung.

– oder –

Die zwei Berechtigungen sind nicht gleich, und die aktuelle Berechtigung stellt keine NoZone-Sicherheitszone dar.

Hinweise

Das Ergebnis eines Aufrufs von Union ist eine Berechtigung, die die Sicherheitszone sowohl aus der aktuellen als auch aus der angegebenen Berechtigung darstellt. Anforderungen, die eine der beiden Berechtigungen erfolgreich durchlaufen, durchlaufen auch deren Gesamtmenge erfolgreich. Die Union zweier identischer ZoneIdentityPermission-Objekte ist dieselbe Berechtigung. Die Union einer NULL-Berechtigung und einer ZoneIdentityPermission-Berechtigung ist die Berechtigung, die nicht NULL ist.

Beachten Sie, dass ein ZoneIdentityPermission-Objekt, das eine NoZone-Sicherheitszone darstellt, als NULL-Berechtigung behandelt und als Sonderfall gehandhabt wird. Die Union eines ZoneIdentityPermission-Objekts, das die NoZone-Sicherheitszone darstellt, und einer NULL-Berechtigung ist NULL. Die Union zweier verschiedener Zonenidentitätsberechtigungen führt zum Auslösen einer ArgumentException-Ausnahme, wenn keine der beiden Berechtigungen eine NoZone-Sicherheitszone darstellt.

Beispiel

        ' Union creates a new permission that is the union of the current permission and the specified permission.
        Private Function UnionDemo() As Boolean
            Dim returnValue As Boolean = True
            Dim zone1, zone2 As SecurityZone
            Dim zoneIdPerm1, zoneIdPerm2 As ZoneIdentityPermission
            Dim zoneIdPerm3 As IPermission
            Dim zoneGen1 As New ZoneGenerator()
            Dim zoneGen2 As New ZoneGenerator()
            zoneGen1.ResetIndex()
            While zoneGen1.CreateZone(zone1)
                zoneIdPerm1 = New ZoneIdentityPermission(zone1)
                Console.WriteLine("**********************************************************" & ControlChars.Cr)
                zoneGen2.ResetIndex()

                Try
                    While zoneGen2.CreateZone(zone2)
                        zoneIdPerm2 = New ZoneIdentityPermission(zone2)
                        zoneIdPerm3 = CType(zoneIdPerm1.Union(zoneIdPerm2), ZoneIdentityPermission)
                        zoneIdPerm3 = zoneIdPerm1.Union(zoneIdPerm2)

                        If zoneIdPerm3 Is Nothing Then
                            Console.WriteLine(("The union of " & zone1.ToString() & " and " & _
                            zone2.ToString() & " is null."))
                        Else
                            Console.WriteLine(("The union of " & zoneIdPerm1.SecurityZone.ToString() & " and " _
                            & zoneIdPerm2.SecurityZone.ToString() & " = " _
                            & CType(zoneIdPerm3, Object).SecurityZone.ToString()))
                        End If
ContinueWhile2:
                    End While
                Catch e As Exception
                    Console.WriteLine(e.Message)
                End Try

ContinueWhile1:
            End While


            Return returnValue
        End Function 'UnionDemo
// Union creates a new permission that is the union of the current permission and the specified permission.
private bool UnionDemo()
{
    bool returnValue = true;
    SecurityZone zone1, zone2;
    ZoneIdentityPermission zoneIdPerm1, zoneIdPerm2;
    IPermission zoneIdPerm3;
    ZoneGenerator zoneGen1 = new ZoneGenerator();
    ZoneGenerator zoneGen2 = new ZoneGenerator();
    zoneGen1.ResetIndex();
    while (zoneGen1.CreateZone(out zone1))
    {
        zoneIdPerm1 = new ZoneIdentityPermission( zone1);
        Console.WriteLine("**********************************************************\n");
        zoneGen2.ResetIndex();

        while (zoneGen2.CreateZone(out zone2))
        {
            zoneIdPerm2 = new ZoneIdentityPermission( zone2);
            try
            {
                zoneIdPerm3 = (ZoneIdentityPermission)zoneIdPerm1.Union(zoneIdPerm2);
                zoneIdPerm3 = zoneIdPerm1.Union(zoneIdPerm2);

                if (zoneIdPerm3 == null)
                {
                    Console.WriteLine("The union of " + zone1 + " and " + zone2 + " is null.");
                }
                else
                {
                    Console.WriteLine("The union of " + zoneIdPerm1.SecurityZone + " and " +
                        zoneIdPerm2.SecurityZone + " = " +
                        ((ZoneIdentityPermission)zoneIdPerm3).SecurityZone.ToString());
                }
            }
            catch (Exception e)
            {
                // Expected exception.
                Console.WriteLine("An exception was thrown for union :" + e.Message);
            }

        }
    }

    return returnValue;

}
// Union creates a new permission that is the union of the current permission and the specified permission.
bool UnionDemo()
{
   bool returnValue = true;
   SecurityZone zone1;
   SecurityZone zone2;
   ZoneIdentityPermission^ zoneIdPerm1;
   ZoneIdentityPermission^ zoneIdPerm2;
   IPermission^ zoneIdPerm3;
   ZoneGenerator^ zoneGen1 = gcnew ZoneGenerator;
   ZoneGenerator^ zoneGen2 = gcnew ZoneGenerator;
   zoneGen1->ResetIndex();
   while ( zoneGen1->CreateZone(  &zone1 ) )
   {
      zoneIdPerm1 = gcnew ZoneIdentityPermission( zone1 );
      Console::WriteLine( "**********************************************************\n" );
      zoneGen2->ResetIndex();
      while ( zoneGen2->CreateZone(  &zone2 ) )
      {
         zoneIdPerm2 = gcnew ZoneIdentityPermission( zone2 );
         zoneIdPerm3 = zoneIdPerm1->Union( zoneIdPerm2 );
         if ( zoneIdPerm3 == nullptr )
         {
            Console::WriteLine( "The union of {0} and {1} is null.", zone1, zone2 );
         }
         else
         {
            Console::WriteLine( "The union of {0} and {1} = {2}", zoneIdPerm1->SecurityZone, zoneIdPerm2->SecurityZone, (dynamic_cast<ZoneIdentityPermission^>(zoneIdPerm3))->SecurityZone );
         }
      }
   }

   return returnValue;
}

// Union creates a new permission that is the union of the
// current permission and the specified permission.
private boolean UnionDemo()
{
    boolean returnValue = true;
    SecurityZone zone1[] = new SecurityZone[1];
    SecurityZone zone2[] = new SecurityZone[1];
    ZoneIdentityPermission zoneIdPerm1[] = new ZoneIdentityPermission[1];
    ZoneIdentityPermission zoneIdPerm2[] = new ZoneIdentityPermission[1];
    IPermission zoneIdPerm3;
    ZoneGenerator zoneGen1 = new ZoneGenerator();
    ZoneGenerator zoneGen2 = new ZoneGenerator();

    zoneGen1.ResetIndex();
    while (zoneGen1.CreateZone(zoneIdPerm1, zone1)) {
        if (zoneIdPerm1[0] == null) {
            continue;
        }
        Console.WriteLine("***************************************" 
            + "*******************\n");
        zoneGen2.ResetIndex();
        while (zoneGen2.CreateZone(zoneIdPerm2, zone2)) {
            if (zoneIdPerm2[0] == null) {
                continue;
            }
            zoneIdPerm3 = ((ZoneIdentityPermission)(zoneIdPerm1[0].
                Union(zoneIdPerm2[0])));
            zoneIdPerm3 = zoneIdPerm1[0].Union(zoneIdPerm2[0]);
            if (zoneIdPerm3 == null) {
                Console.WriteLine(("The union of " + zone1[0] + " and " 
                    + zone2[0] + " is null."));
            }
            else {
                Console.WriteLine(("The union of " + zoneIdPerm1[0].
                get_SecurityZone() + " and " 
                    + zoneIdPerm2[0].get_SecurityZone() + " = " 
                    + ((ZoneIdentityPermission)(zoneIdPerm3)).
                    get_SecurityZone().ToString()));
            }
        }
    }
    return returnValue;
} //UnionDemo

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

ZoneIdentityPermission-Klasse
ZoneIdentityPermission-Member
System.Security.Permissions-Namespace