using System; using System.Collections.Specialized; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; namespace Novell.CASA { /// /// Summary description for RemoteClient. /// public class RemoteClient { private SecretStore obj; TcpChannel chan = null; public RemoteClient() { } public void openSocket(string serverAddr, string sPort) { // Create a channel for communicating w/ the remote object // Notice no port is specified on the client chan = new TcpChannel(); try { ChannelServices.RegisterChannel(chan); } catch (Exception) { } // Create an instance of the remote object obj = (SecretStore) Activator.GetObject( typeof(Novell.CASA.SecretStore), "tcp://"+serverAddr + ":" + sPort + "/enumerateSecretIDs" ); } public void closeSocket() { if (chan != null) { ChannelServices.UnregisterChannel(chan); //chan = null; } } public StringCollection getRemoteSecretIDS() { // Use the object try { if( obj.Equals(null) ) { System.Console.WriteLine("Error: unable to locate server"); return null; } else { //Console.WriteLine(obj.enumerateSecretIDs()); return obj.enumerateSecretIDs(); } } catch (Exception e) { throw e; } } public Secret getRemoteSecret(string id) { if (obj.Equals(null)) { return null; } else { return obj.getSecret(id); } } } }