SocketPermission.IsSubsetOf Method (IPermission)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Determines if the current permission is a subset of the specified permission.

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

public override bool IsSubsetOf(
	IPermission target


Type: System.Security.IPermission

A SocketPermission that is to be tested for the subset relationship.

Return Value

Type: System.Boolean

If target is null, this method returns true if the current instance defines no permissions; otherwise, false. If target is not null, this method returns true if the current instance defines a subset of target permissions; otherwise, false.

Exception Condition

target is not a SocketException.


DnsPermission is not granted to the method caller.

The current permission is a subset of the specified permission if the current permission specifies a set of operations that is wholly contained by the specified permission.

For example, a permission that represents access to is a subset of a permission that represents access to If this method returns true, the current permission represents no more access to the protected resource than does the specified permission.

The following example uses the IsSubsetOf method to determine if one SocketPermission is the subset of another.

 // 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
Available since 1.1
Return to top