Hello guys, I already developed a channel sink to encrypt data passed from the proxy client to the remoting server. The channel sink uses the RSACryptoServiceProvider base class to create and RSA key pair to work in an asymmetric encryption environment.
The issue is that I want to configure remoting to use the same Dispatcher object listening in different TCP ports (one port for secure transactions and the other one for simple transactions). I need that the channel sink only is triggered if the client application uses the secure port (the port for secure transactions). I am attaching the latest version of the server.config and client.config files that I tried for the remoting configure. The scenarios would be: I have a client class with two methods, one method need transfers data in a secure way and the other one not. On the other hand I have a class that I called Channel Adapter, It has just one method named Execute. The methods of the client class use the channel adapter's Execute method to call to the dispatcher object that is running in the remoting server. Then the channel adapter runs in-proc to the client and the dispatcher runs in the server through remoting. The problem that I have is that the channel adapter should be call to the dispatcher using the proper TCP port, according to the kind of transaction (secure transaction - not secure transaction), and the channel sink only should be triggered if the channel adapter use the secure TCP port, defined in the remoting configuration. At the moment I couldn't configure remoting (client and server side) to reach that the channel sink applies only to one TCP port, calling the same dispatcher object through remoting that is running in the server side. Is a little difficult to explain, please, let me know if it is not clear or if you need further information. I would appreciate your help with this matter ! Thanks in advanced, Wilson Chiesa.
<configuration> <system.runtime.remoting> <application name="SecureSampleObject"> <client> <wellknown type="Framework.Core, fwkcore" url="tcp://localhost:6000/Dispatcher.rem"/> <wellknown type="Framework.Core, fwkcore" url="tcp://localhost:6001/SecureDispatcher.rem"/> </client> <channels> <channel ref="tcp" port="0"> <clientProviders> <formatter ref="binary" /> <provider type="Framework.Core.SecureClientChannelSinkProvider, SecureChannel" algorithm="RC2"/> </clientProviders> </channel> </channels> </application> </system.runtime.remoting> </configuration>
<configuration> <system.runtime.remoting> <application name="Dispatcher"> <service> <wellknown type="Framework.Core, fwkcore" objectUri="Dispatcher.rem" mode="SingleCall"/> <wellknown type="Framework.Core, fwkcore" objectUri="SecureDispatcher.rem" mode="Singleton"/> </service> <channels> <channel ref="tcp" port="6001"> <serverProviders> <provider type="Framework.Core.SecureServerChannelSinkProvider, SecureChannel" algorithm="RC2"/> <formatter ref="binary" /> </serverProviders> </channel> </channels> </application> </system.runtime.remoting> </configuration>