Reflection .NET API
Walkthroughs / Set up Secure Connections / Convert from Telnet to SSL/TLS
In This Topic
    Convert from Telnet to SSL/TLS
    In This Topic

    You can set up applications that automatically convert Telnet sessions to secure sessions. This sample shows how to convert an IBM terminal session that is configured to connect through telnet to an SSL/TLS connection when its session document file is opened.

    The sample only converts sessions that have a specific host address. 

    To automatically convert Telnet sessions to SSL/TLS

    1. In Visual Studio, create a new Console Application project and add references for the following Reflection assemblies. (Depending on your version of Visual Studio, these can be found either on the .NET tab or under Assemblies | Extensions.)
      Attachmate.Reflection
      Attachmate.Reflection.Framework
      Attachmate.Reflection.Emulation.IbmHosts
    2. Replace all the code in the Program.cs file with the following code. This code converts IBM Telnet sessions with a specific host name to SSL/TLS sessions.
               
      Convert Telnet to SSL/TLS
      Copy Code
      using System;
      using Attachmate.Reflection.Framework;
      using Attachmate.Reflection.Emulation.IbmHosts;
      using Attachmate.Reflection.UserInterface;
      namespace CreateSessionFromExistingSessionFile
      {
          class Program
          {
              //Change these placeholders for your host
              static string yourHostName = "yourHostName";
              static string yourDomainName = "yourdomain.com";
              static int yourPort = 723; //Replace with your port
      
              static public void frame_View_Opened(object sender, EventArgs args)
              {
                  IFrame frame = (IFrame)sender;
                  IView view;
      
                  //wait for the view
                  while ((view = frame.SelectedView) == null)
                  {
                      System.Threading.Thread.Sleep(500);
                  }
      
                  //check for the IbmTerminal type
                  if (view.Control.ToString() == "Attachmate.Reflection.Emulation.IbmHosts.IbmTerminal")
                  {
                      IIbmTerminal terminal = (IIbmTerminal)view.Control;
                      //Disconnect and disable autoconnect so we can change security settings
                      if (terminal.IsConnected == true)
                      {
                          terminal.AutoConnect = false;
                          terminal.Disconnect();
                      }
      
                      //Only change security for sessions that connect to your host
                      if (terminal.EnableTelnetEncryption == false && terminal.HostAddress.Trim().ToUpper().Substring(0, yourHostName.Length) == yourHostName.ToUpper())
                      {
                          terminal.EnableTelnetEncryption = true;
                          terminal.TelnetEncryptionVerifyHostName = false;
                          terminal.TelnetEncryptionDisableCRLCheck = true;
                          terminal.HostAddress = yourHostName + "." + yourDomainName;
                          terminal.Port = yourPort;
                      }
                      terminal.Connect();
                  }
              }
      
              static void Main(string[] args)
              {
                  //Start a visible instance of Reflection or get the instance running at the given channel name
                  Application app = MyReflection.CreateApplication("myWorkspace", true);
                  IFrame frame = (IFrame)app.GetObject("Frame");
      
                  //Handle the ViewOpened event to make sure the connection uses SSL/TLS
                  frame.ViewOpened += new ViewEventHandler(frame_View_Opened);
                  Console.ReadKey();
              }
          }
      }
      
      
            
    3. Assign the variables for yourHostName, yourDomainName, and yourPort.

       

    To test this project

    1. In Visual Studio, press F5 to run this project.
    2. When Reflection opens, open an IBM Telnet session that has the host name you configured in the code.
    3. Verify that the session has been converted to an SSL/TLS session.