SocketPermission Constructor (NetworkAccess, TransportType, String, Int32)
Initializes a new instance of the SocketPermission class for the given transport address with the specified permission.
Assembly: System (in System.dll)
public SocketPermission( NetworkAccess access, TransportType transport, string hostName, int portNumber )
Parameters
- access
- Type: System.Net.NetworkAccess
One of the NetworkAccess values.
- transport
- Type: System.Net.TransportType
One of the TransportType values.
- hostName
- Type: System.String
The host name for the transport address.
- portNumber
- Type: System.Int32
The port number for the transport address.
| Exception | Condition |
|---|---|
| ArgumentNullException | hostName is null. |
This constructor creates a SocketPermission that controls access to the specified hostName and portNumber using the specified transport.
The hostName can be a DNS name, an IP address, or a specified IP subnet, such as 192.168.1.*.
The portNumber can be any valid port number defined by the transport, or SocketPermission.AllPorts.
The following example creates a SocketPermission using a NetworkAccess enumerated value, a TransportType enumerated value, the hostname, and the port number.
// <Snippet6> SocketPermission socketPermission1 = new SocketPermission(PermissionState.Unrestricted); // Create a 'SocketPermission' object for two ip addresses. SocketPermission socketPermission2 = new SocketPermission(PermissionState.None); SecurityElement securityElement1 = socketPermission2.ToXml(); // 'SocketPermission' object for 'Connect' permission SecurityElement securityElement2 = new SecurityElement("ConnectAccess"); // Format to specify ip address are <ip-address>#<port>#<transport-type> // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and // for 'All'ports for the ip-address. SecurityElement securityElement3 = new SecurityElement("URI", "192.168.144.238#-1#3"); // Second 'SocketPermission' ip-address is '192.168.144.240' for 'All' transport types and // for 'All' ports for the ip-address. SecurityElement securityElement4 = new SecurityElement("URI", "192.168.144.240#-1#3"); securityElement2.AddChild(securityElement3); securityElement2.AddChild(securityElement4); securityElement1.AddChild(securityElement2); // Obtain a 'SocketPermission' object using 'FromXml' method. socketPermission2.FromXml(securityElement1); Console.WriteLine("\nDisplays the result of FromXml method : \n"); Console.WriteLine(socketPermission2.ToString()); // Create another 'SocketPermission' object with two ip addresses. // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and for 'All' ports for the ip-address. SocketPermission socketPermission3 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "192.168.144.238", SocketPermission.AllPorts); // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All' transport types and for 'All' ports for the ip-address. socketPermission3.AddPermission(NetworkAccess.Connect, TransportType.All, "192.168.144.239", SocketPermission.AllPorts); Console.WriteLine("Displays the result of AddPermission method : \n"); Console.WriteLine(socketPermission3.ToString()); // Find the intersection between two 'SocketPermission' objects. socketPermission1 = (SocketPermission)socketPermission2.Intersect(socketPermission3); Console.WriteLine("Displays the result of Intersect method :\n "); Console.WriteLine(socketPermission1.ToString()); // Demand that the calling method have the requsite socket permission. socketPermission1.Demand(); // </Snippet3>
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.