This documentation is archived and is not being maintained.

SocketPermission.Union Method

Returns the logical union between two SocketPermission instances.

Namespace:  System.Net
Assembly:  System (in System.dll)

public override IPermission Union(
	IPermission target


Type: System.Security.IPermission
The SocketPermission instance to combine with the current instance.

Return Value

Type: System.Security.IPermission
The SocketPermission instance that represents the union of two SocketPermission instances. If target parameter is null, it returns a copy of the current instance.




target is not a SocketPermission.

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. Any demand that passes either the current instance or target passes their union. This method overrides Union and is implemented to support the IPermission interface.

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 = new SocketPermission(PermissionState.None);

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

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

     // Creates a SocketPermission from the union of two SocketPermissions.
     SocketPermission mySocketPermissionUnion = 

     // Checks to see if the union was successfully created by using the IsSubsetOf method.
     if (mySocketPermission1.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()) {

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

          myEnumerator = mySocketPermissionUnion.ConnectList;
	   while (myEnumerator.MoveNext()) {


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.