I have a current system using IIS 6 and 7, written in ASP.NET with C# in .NET 4.
My purpose is to hide the url completely (as per client request). i.e. https://myapp.it.mydomain.com/Secure/folder1/folder2/folder3/someView.aspx must be https://myapp.it.mydomain.com/ or at least a unfirm non changing page: https://myapp.it.mydomain.com/constantView.aspx
Currently, we make use of Response.Redirect
for all navigation items, and some direct links.
We also have some minor usage of query strings, but more dependent on cross-page post backs.
We do not have any means of URL masking in place and are looking to provide a mechanism to do so.
I'm already aware of a few method to perform URL Masking, but would like SO's opinion in the easiest to implement solution.
Easiest, is referring to time to implement. i.e. Changing our calls to use Server.Transfer exclusively is not an option.
ASP.NET Routing
seems like a fair solution, but needs work on all query strings as I understand it, to map where we need them to. I am not clear if this can provide hiding for all pages instead of one to one mapping.
Using framesets/iFrames is also not an option, as it causes many complications with the existing solution.
As I understand it, the URL Rewrite Module
may be my best solution.
I'm hoping this question can lead to a good list of possibly solutions, and perhaps methods that I have not already been made aware of.
edit
A more clear question with current situation:
We are using IIS 6 (thus the IIS 7 rewrite module is out of the question). Is there a way to provide URL cloaking/masking which will not break existing code which uses Page.Referrer (in ASP.NET) and query strings?
The idea is to make the address bar always appear to be the same. Even a JavaScript hack is acceptable.