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