SocketPermission.Union(IPermission) SocketPermission.Union(IPermission) SocketPermission.Union(IPermission) SocketPermission.Union(IPermission) Method

Definition

Gibt die logische Gesamtmenge zweier SocketPermission-Instanzen zurück.Returns the logical union between two SocketPermission instances.

public:
 override System::Security::IPermission ^ Union(System::Security::IPermission ^ target);
public override System.Security.IPermission Union (System.Security.IPermission target);
override this.Union : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Union (target As IPermission) As IPermission

Parameter

target
IPermission IPermission IPermission IPermission

Die SocketPermission-Instanz, die mit der aktuellen Instanz kombiniert werden soll.The SocketPermission instance to combine with the current instance.

Gibt zurück

Die SocketPermission-Instanz, die die Gesamtmenge zweier SocketPermission-Instanzen darstellt.The SocketPermission instance that represents the union of two SocketPermission instances. Wenn der target-Parameter null ist, wird eine Kopie der aktuellen Instanz zurückgegeben.If target parameter is null, it returns a copy of the current instance.

Ausnahmen

Beispiele

Im folgenden Beispiel wird die Union Methode, um die logische Union der zwei vorhandene zurückzugeben SocketPermission Instanzen.The following example uses the Union method to return the logical union of two existing SocketPermission instances.

// Creates a SocketPermission restricting access to and from all URIs.
SocketPermission^ mySocketPermission1 = gcnew SocketPermission( PermissionState::None );

// The socket to which this permission will apply will allow connections from www.contoso.com.
mySocketPermission1->AddPermission( NetworkAccess::Accept, TransportType::Tcp,  "www.contoso.com", 11000 );

// Creates a SocketPermission which will allow the target Socket to connect with www.southridgevideo.com.
SocketPermission^ mySocketPermission2 = gcnew SocketPermission( NetworkAccess::Connect,TransportType::Tcp, "www.southridgevideo.com",11002 );

// Creates a SocketPermission from the union of two SocketPermissions.
SocketPermission^ mySocketPermissionUnion =
   (SocketPermission^)( mySocketPermission1->Union( mySocketPermission2 ) );

// Checks to see if the union was successfully created by using the IsSubsetOf method.
if ( mySocketPermission1->IsSubsetOf( mySocketPermissionUnion ) &&
   mySocketPermission2->IsSubsetOf( mySocketPermissionUnion ) )
{
   Console::WriteLine(  "This union contains permissions from both mySocketPermission1 and mySocketPermission2" );
   
   // Prints the allowable accept URIs to the console.
   Console::WriteLine(  "This union accepts connections on :" );

   IEnumerator^ myEnumerator = mySocketPermissionUnion->AcceptList;
   while ( myEnumerator->MoveNext() )
   {
      Console::WriteLine( safe_cast<EndpointPermission^>( myEnumerator->Current )->ToString() );
   }
   
   // Prints the allowable connect URIs to the console.
   Console::WriteLine(  "This union permits connections to :" );

   myEnumerator = mySocketPermissionUnion->ConnectList;
   while ( myEnumerator->MoveNext() )
   {
      Console::WriteLine( safe_cast<EndpointPermission^>( myEnumerator->Current )->ToString() );
   }
}

 // Creates a SocketPermission restricting access to and from all URIs.
 SocketPermission mySocketPermission1 = new SocketPermission(PermissionState.None);

 // The socket to which this permission will apply will allow connections from www.contoso.com.
 mySocketPermission1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.contoso.com", 11000);

 // Creates a SocketPermission which will allow the target Socket to connect with www.southridgevideo.com.
 SocketPermission mySocketPermission2 =
                            new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "www.southridgevideo.com", 11002);

 // Creates a SocketPermission from the union of two SocketPermissions.
 SocketPermission mySocketPermissionUnion = 
                            (SocketPermission)mySocketPermission1.Union(mySocketPermission2);

 // Checks to see if the union was successfully created by using the IsSubsetOf method.
 if (mySocketPermission1.IsSubsetOf(mySocketPermissionUnion) && 
 	   mySocketPermission2.IsSubsetOf(mySocketPermissionUnion)){
      Console.WriteLine("This union contains permissions from both mySocketPermission1 and mySocketPermission2"); 

      // Prints the allowable accept URIs to the console.
      Console.WriteLine("This union accepts connections on :");

      IEnumerator myEnumerator = mySocketPermissionUnion.AcceptList;
while (myEnumerator.MoveNext()) {
           Console.WriteLine(((EndpointPermission)myEnumerator.Current).ToString());
     }      

         // Prints the allowable connect URIs to the console.
      Console.WriteLine("This union permits connections to :");

      myEnumerator = mySocketPermissionUnion.ConnectList;
while (myEnumerator.MoveNext()) {
           Console.WriteLine(((EndpointPermission)myEnumerator.Current).ToString());
     }      

       }

' Creates a SocketPermission restricting access to and from all URIs.
Dim mySocketPermission1 As New SocketPermission(PermissionState.None)

' The socket to which this permission will apply will allow connections from www.contoso.com.
mySocketPermission1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.contoso.com", 11000)

' Creates a SocketPermission which will allow the target Socket to connect with www.southridgevideo.com.
Dim mySocketPermission2 As New SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "www.southridgevideo.com", 11002)

' Creates a SocketPermission from the union of two SocketPermissions.
Dim mySocketPermissionUnion As SocketPermission = CType(mySocketPermission1.Union(mySocketPermission2), SocketPermission)

' Checks to see if the union was successfully created by using the IsSubsetOf method.
If mySocketPermission1.IsSubsetOf(mySocketPermissionUnion) And mySocketPermission2.IsSubsetOf(mySocketPermissionUnion) Then
   Console.WriteLine("This union contains permissions from both mySocketPermission1 and mySocketPermission2")
   
   ' Prints the allowable accept URIs to the console.
   Console.WriteLine("This union accepts connections on :")
   
   Dim myEnumerator As IEnumerator = mySocketPermissionUnion.AcceptList
   While myEnumerator.MoveNext()
      Console.WriteLine(CType(myEnumerator.Current, EndpointPermission).ToString())
   End While
   
   Console.WriteLine("This union establishes connections on : ")
   
   ' Prints the allowable connect URIs to the console.
   Console.WriteLine("This union permits connections to :")
   
   myEnumerator = mySocketPermissionUnion.ConnectList
   While myEnumerator.MoveNext()
      Console.WriteLine(CType(myEnumerator.Current, EndpointPermission).ToString())
   End While
End If 

Hinweise

Das Ergebnis eines Aufrufs von Union ist eine Berechtigung, die den Zugriff auf alle darstellt Socket Verbindungen, die von der aktuellen Instanz dargestellt als auch für den Zugriff durch dargestellt target.The result of a call to Union is a permission that represents all of the access to Socket connections represented by the current instance as well as the access represented by target. Jede Anforderung, die entweder die aktuelle Instanz übergeben oder target übergibt die Union.Any demand that passes either the current instance or target passes their union. Diese Methode überschreibt Union und wird implementiert zur Unterstützung der IPermission Schnittstelle.This method overrides Union and is implemented to support the IPermission interface.

Gilt für: