ASP.NET应用程序中的URL重写

时间:2013-01-21 19:28:44

标签: c# asp.net url rewrite

如何根据c#.net或asp.net 4.0中的注册客户端重定向url。例如,如果客户注册为“client1”,我们的网站为www.mycompany.com,则每个页面客户收益都应该获得www.client1.mycompany.com。

更详细的例子:

例如,另一个创建的客户端是Client2。我一般创建的页面就像

 "www.mycompany.com/product.aspx" 
 "www.mycompany.com/categories.aspx" should be shown as
 "www.client2.mycompany.com/product.aspx" and
 "www.client2.mycompany.com/categories.aspx" respectively

我在网上搜索过并找到静态页面或在启动应用程序时使用Gloabal.asax但在用户登录后没有找到任何内容。

2 个答案:

答案 0 :(得分:0)

我之前在一些网站上做过类似的事情,你可以使用几种方法。假设您有一个URL设置,以便所有子域(* .url.com)将任何用户发送到您的服务器,并且您有IIS设置来处理它们(即,不需要主机头,只需IP)您可以在同一站点中使用以下方法之一:

  1. 登录后只需将用户发送到该网址即可。由于.Net不关心服务器知道如何呈现它的url,那么应该就这么简单。这假定您的所有导航都使用相对路径,并且您必须为该域启用cookie共享。如果登录的cookie是在1.url.com上提供的,并且您将它们发送到2.url.com,则需要这样做。您可以在同一个域中共享cookie,需要一些工作,但可以完成。
  2. 创建一个通用登录页面,将Web服务请求发送回服务器以查看用户是否可以登录。如果他或她可以让它向浏览器发送一个命令,连同正确的URL,告诉客户端浏览器直接发布到该站点的登录页面(发送用户名,密码)。这将登录到他们的站点并从一个简单的登录页面正确分配cookie。您甚至可以创建仅用于此目的的外部登录页面。最后,所有通用页面都会看到他们是否可以登录并将他们的凭据发送到正确的登录页面。出于安全原因,我建议在ssl的帖子中完成此操作。
  3. 我希望自那以后。

答案 1 :(得分:0)

我使用了一个名为UrlRewritingNet的项目 - 它已经很老了但是源代码可用,所以你可以为4.0重新编译它。

链接位于http://urlrewriting.net/149/en/home.html