• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Best way to enable remote access for an application

NotANumber

Junior Member
Hi everyone,

I am a junior developer for a company that is developing a new budgeting/financial analysis product. We are coding the project in .NET and we make extensive use of Analysis Services. Initially, we coded with the intention that the software would run on a LAN and we could directly interact with various servers (SQL Server, Analysis Services, etc). Everything worked great.

Here?s the problem: Sales wants the product to be useable by a remote user over the Internet. The user should be able to fire up the application from their remote location, authenticate and authorize, manipulate some data, create and save some reports, and log off.

The solution agreed upon by the developers above me was to use a Web Service as a gateway between the Internet and the LAN containing the important servers. The idea was that regardless of whether the application was coming in locally or over the Internet, all calls go through the web service. Well, in practice, this approach creates enormous amounts of headaches and complexities with the main two being passing around credentials to various servers and having to manually serialize objects that were never designed to be passed over a web service.

Basically, all my instincts tell me that this approach is fatally flawed. One alternative that comes to mind is to use VPN to handle the remote user scenario and just code the app as if it was always running on a LAN. Unfortunately, our network admin said that requiring a company to set up a VPN to enable remote access is too big of a demand and we would thus alienate many customers.

What do you guys think would be a better solution to enable remote access for our application? VPN? Terminal services? Or is the web service approach a good idea but I?m just not seeing it?

Thanks.
 
At my work we have a lot of remote users and our main app runs via terminal services typical through box-to-box VPNs. I have been asked to make the main app available to our users from homes, hotels, etc.

I didn't want to open port 3389 to the world for guessing attempts at logins on my server. Nor did I want to deal with the headache and off-hours support of VPN software clients (I am the only IT guy and I have a family I like to spend time with).

Researching I discovered SSL VPNs. This can be done several ways...

1) Very expensive hardware that supports SSL VPN applications

2) Windows 2003 SP1 includes new support for authenticating RDP with a digital certificate via SSL.

3) SSL-Explorer or OpenVPN open-source software that allows RDP redirection via SSL.

I have been testing SSL-Explorer and I like it. I have it authenticating against my Active-Directory server. Basically the users go to an https:// address that I have setup and are prompted for username/password. Once authenticated it launches a Java applet that creates the SSL VPN. Then they select the application and it launches the Remote Desktop client through the encrypted SSL tunnel. Once they are done they close the RDP session and the Internet Browser and voila! No messy residue or streaking 🙂

 
This may be a dumb question but here goes: Why can't just plain Terminal Services be used? It was designed for remote access and all communication is encrypted.

😕
 
If remote access modules are not as full fledged as your .NET application, you can simply design those portions in ASP.NET.
 
Originally posted by: NotANumber
This may be a dumb question but here goes: Why can't just plain Terminal Services be used? It was designed for remote access and all communication is encrypted.

😕

Yes the communication is encrypted but I just have a problem having the login screen exposed to the public on the commonly known 3389 TCP port.

 
Back
Top