现有ASP.NET 4解决方案中的有效URL屏蔽/隐藏/隐藏

eri*_*osg 5 asp.net iis masking

我有一个使用IIS 6和7的当前系统,该系统使用ASP.NET和.NET 4中的C#编写。

我的目的是完全隐藏url(根据客户要求)。即 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似乎是一个公平的解决方案,但是据我所知,它需要处理所有查询字符串,以映射到我们需要它们的位置。我不清楚这是否可以提供所有页面的隐藏而不是一对一的映射。

也不选择使用框架集/ iFrame,因为这会给现有解决方案带来很多麻烦。

据我了解,这URL Rewrite Module可能是我最好的解决方案。

我希望这个问题能为您提供可能的解决方案清单,以及可能尚未引起我注意的方法。


编辑

关于当前情况的一个更明确的问题:

我们正在使用IIS 6(因此IIS 7重写模块是不可能的)。有没有一种方法可以提供URL伪装/屏蔽功能,而不会破坏使用Page.Referrer(在ASP.NET中)和查询字符串的现有代码?

这个想法是使地址栏看起来总是一样的。甚至JavaScript hack都是可以接受的。

Nik*_*vić 2

您在这里对所有可能的解决方案进行了详细分析: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

但根据你的要求,我个人认为URL重写是你最好的选择,因为你只需要在web.config文件中添加重写规则,所以它是最容易实现的解决方案。对于 IIS6,我自己过去曾使用过 Intelligencia UrlRewriter.NET