Export (0) Print
Expand All

SocketPermission.ConnectList Property

Gets a list of EndpointPermission instances identifying the endpoints that can be connected to under this permission instance.

[Visual Basic]
Public ReadOnly Property ConnectList As IEnumerator
[C#]
public IEnumerator ConnectList {get;}
[C++]
public: __property IEnumerator* get_ConnectList();
[JScript]
public function get ConnectList() : IEnumerator;

Property Value

An instance implementing the IEnumerator interface containing EndpointPermission instances.

Example

[Visual Basic, C#, C++] The following example uses the ConnectList property to return a list of endpoints to which connection privileges are granted.

[Visual Basic] 

    Dim socketPermission1 As New SocketPermission(PermissionState.Unrestricted)
    
        'Create a 'SocketPermission' object for two ip addresses.
        Dim socketPermission2 As New SocketPermission(PermissionState.None)
        Dim securityElement4 As SecurityElement = socketPermission2.ToXml()
        ''SocketPermission' object for 'Connect' permission
        Dim securityElement1 As 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.
        Dim securityElement2 As 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.
        Dim securityElement3 As New SecurityElement("URI", "192.168.144.240#-1#3")
        securityElement1.AddChild(securityElement2)
        securityElement1.AddChild(securityElement3)
        securityElement4.AddChild(securityElement1)
        
        'Obtain a 'SocketPermission' object using 'FromXml' method.    
        socketPermission2.FromXml(securityElement4)
        
        '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.
        Dim socketPermission3 As 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(ControlChars.Cr + "Checks the Socket permissions using IsUnrestricted method : ")
        If socketPermission1.IsUnrestricted() Then
            Console.WriteLine("Socket permission is unrestricted")
        Else
            Console.WriteLine("Socket permission is restricted")
        End If 
        Console.WriteLine()
        
        Console.WriteLine("Display result of ConnectList property : " + ControlChars.Cr)
        Dim enumerator As IEnumerator = socketPermission3.ConnectList
        While enumerator.MoveNext()
            Console.WriteLine("The hostname is       : {0}", CType(enumerator.Current, EndpointPermission).Hostname)
            Console.WriteLine("The port is           : {0}", CType(enumerator.Current, EndpointPermission).Port)
            Console.WriteLine("The Transport type is : {0}", CType(enumerator.Current, EndpointPermission).Transport)
        End While
        
        Console.WriteLine("")
        
        Console.WriteLine("Display Security Elements :" + ControlChars.Cr + " ")
        PrintSecurityElement(socketPermission2.ToXml(), 0)
        
        'Get a 'SocketPermission' object which is a union of two other 'SocketPermission' objects.
        socketPermission1 = CType(socketPermission3.Union(socketPermission2), SocketPermission)
        
        'Demand that the calling method have the socket permission.
        socketPermission1.Demand()

[C#] 
SocketPermission socketPermission1 = new SocketPermission(PermissionState.Unrestricted);

// Create a 'SocketPermission' object for two ip addresses.
SocketPermission socketPermission2 = new SocketPermission(PermissionState.None);
SecurityElement securityElement4 = socketPermission2.ToXml();
      // 'SocketPermission' object for 'Connect' permission
SecurityElement securityElement1 = 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 securityElement2 = 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 securityElement3 = new SecurityElement("URI", "192.168.144.240#-1#3");
securityElement1.AddChild(securityElement2);
securityElement1.AddChild(securityElement3);
securityElement4.AddChild(securityElement1);

       // Obtain a 'SocketPermission' object using 'FromXml' method.    
socketPermission2.FromXml(securityElement4);

// 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("\nChecks the Socket permissions using IsUnrestricted method : ");
if(socketPermission1.IsUnrestricted())
    Console.WriteLine("Socket permission is unrestricted");
else
    Console.WriteLine("Socket permission is restricted");

Console.WriteLine();

Console.WriteLine("Display result of ConnectList property : \n");
IEnumerator enumerator = socketPermission3.ConnectList;
while(enumerator.MoveNext()) {
    Console.WriteLine("The hostname is       : {0}", ((EndpointPermission)enumerator.Current).Hostname);
    Console.WriteLine("The port is           : {0}", ((EndpointPermission)enumerator.Current).Port);
    Console.WriteLine("The Transport type is : {0}", ((EndpointPermission)enumerator.Current).Transport);
}
Console.WriteLine("");

Console.WriteLine("Display Security Elements :\n ");
PrintSecurityElement(socketPermission2.ToXml(), 0);

// Get a 'SocketPermission' object which is a union of two other 'SocketPermission' objects.
socketPermission1 = (SocketPermission)socketPermission3.Union(socketPermission2);

// Demand that the calling method have the socket permission.
socketPermission1.Demand();

[C++] 
SocketPermission* socketPermission1 = new SocketPermission(PermissionState::Unrestricted);

// Create a 'SocketPermission' Object* for two ip addresses.
SocketPermission* socketPermission2 = new SocketPermission(PermissionState::None);
SecurityElement*  securityElement4 = socketPermission2->ToXml();
// 'SocketPermission' Object* for 'Connect' permission
SecurityElement* securityElement1 = new SecurityElement(S"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* securityElement2 = new SecurityElement(S"URI", S"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* securityElement3 = new SecurityElement(S"URI", S"192.168.144.240#-1#3");
securityElement1->AddChild(securityElement2);
securityElement1->AddChild(securityElement3);
securityElement4->AddChild(securityElement1);

// Obtain a 'SocketPermission' Object* using 'FromXml' method.
socketPermission2->FromXml(securityElement4);

// 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,
   S"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,
   S"192.168.144.239",
   SocketPermission::AllPorts);

Console::WriteLine(S"\nChecks the Socket permissions using IsUnrestricted method : ");
if (socketPermission1->IsUnrestricted())
   Console::WriteLine(S"Socket permission is unrestricted");
else
   Console::WriteLine(S"Socket permission is restricted");

Console::WriteLine();

Console::WriteLine(S"Display result of ConnectList property : \n");
IEnumerator* enumerator = socketPermission3->ConnectList;
while(enumerator->MoveNext())
{
   Console::WriteLine(S"The hostname is       : {0}", dynamic_cast<EndpointPermission*>(enumerator->Current)->Hostname);
   Console::WriteLine(S"The port is           : {0}",__box( dynamic_cast<EndpointPermission*>(enumerator->Current)->Port));
   Console::WriteLine(S"The Transport type is : {0}",__box( dynamic_cast<EndpointPermission*>(enumerator->Current)->Transport));
}
Console::WriteLine(S"");

Console::WriteLine(S"Display Security Elements :\n ");
PrintSecurityElement(socketPermission2->ToXml(), 0);

// Get a 'SocketPermission' Object* which is a union of two other 'SocketPermission' objects.
socketPermission1 = dynamic_cast<SocketPermission*>(socketPermission3->Union(socketPermission2));

// Demand that the calling method have the socket permission.
socketPermission1->Demand();

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

SocketPermission Class | SocketPermission Members | System.Net Namespace

Show:
© 2014 Microsoft