Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |
|---|---|
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