You should use a WCF service that receives the data from the sender. This service should be hosted on the same server as the data sender. Then you can write your client application that only communicates via the WCF service, which you can then configure to encrypt and use authorisation in various ways, both on the transport and the message level. Here, Windows Communication Foundation
], is the link to MSDN page.
Hope this helps