我当前的系统使用 IIS 6 和 7,使用 ASP.NET 和 .NET 4 中的 C# 编写。
我的目的是完全隐藏网址(根据客户请求)。 IE。https://myapp.it.mydomain.com/Secure/folder1/folder2/folder3/someView.aspx https://myapp.it.mydomain.com/Secure/folder1/folder2/folder3/someView.aspx必须是https://myapp.it.mydomain.com/ https://myapp.it.mydomain.com/或至少是一个不确定的非
更改页面:https://myapp.it.mydomain.com/constantView.aspx https://myapp.it.mydomain.com/constantView.aspx
目前,我们利用Response.Redirect
对于所有导航项目和一些直接链接。
我们也有一些查询字符串的少量使用,但更多地依赖于跨页面回发。
我们没有任何适当的 URL 屏蔽方法,并且正在寻求提供一种机制来做到这一点。
我已经知道一些执行 URL 屏蔽的方法,但希望了解最容易实现的解决方案的意见。
最简单,就是指实施的时间。
即,将我们的调用更改为专门使用 Server.Transfer 不是一个选项。
ASP.NET Routing
似乎是一个公平的解决方案,但据我了解,需要对所有查询字符串进行处理,以映射我们需要它们的位置。我不清楚这是否可以为所有页面提供隐藏而不是一对一映射。
使用框架集/iFrame 也不是一种选择,因为它会给现有解决方案带来许多复杂性。
据我了解,URL Rewrite Module
可能是我最好的解决方案。
我希望这个问题能够产生一个可能的解决方案的良好列表,也许还有我尚未意识到的方法。
edit
针对目前的情况提出一个更明确的问题:
我们使用的是 IIS 6(因此 IIS 7 重写模块是不可能的)。
有没有一种方法可以提供 URL 隐藏/屏蔽,并且不会破坏使用 Page.Referrer(在 ASP.NET 中)和查询字符串的现有代码?
这个想法是让地址栏看起来总是一样的。
即使是 JavaScript hack 也是可以接受的。