重定向到另一个域,但相同的服务器

问题描述:

我有两个域名,例如www.male.com和www.female.com都指向相同的网站应用程序。在这个应用程序中,我有一个HTTP模块,用于检查用户的会话是否仍然活动,如果是,则检查用户是男性还是女性。重定向到另一个域,但相同的服务器

我想检查用户从哪个域进入网站。如果用户是男性,但进入(来自)www.female.com,用户必须重定向到www.male.com。如果是女性,则必须做相反的事情。

其他情形的有:

  • 男性用户进入www.female.com/articles/test.aspx,它应该被重定向到www.male.com/articles/test.aspx

  • 一位男性用户输入test.female.com/main/default.aspx时,应将其重定向到test.male.com/main/default.aspx。

我在IIS 7.0框上使用ASP.NET 3.5。

的Gr

的Martijn

+2

你的问题是什么? – cdonner 2010-02-21 17:53:12

+0

做这些重定向的最佳方式是什么? – 2010-02-21 18:08:36

您可以使用Request.Url.Host来确定它们位于的网站(male.com或female.com),然后使用Response.Redirect将它们引导到正确的网站。您可以使用Request.Url上的其他属性来确定用户正在查看的确切路径。

+0

好点。谢谢! – 2010-02-21 18:19:03

+0

这是回答你的问题还是有其他方面我可以帮忙? – chrissr 2010-02-21 18:22:16

的浏览器如果在同一台服务器的域是很重要的它并不重要。 您可以在iframe中打开male.com以检查cookie或为这两个域设置cookie。 或跟踪用户使用他们的IP,但我wouldnt建议。

+0

和我开始觉得我误解了这个问题 – n00b 2010-02-21 17:54:04

最简单的方法是建立一个公共会话服务器,这两个站点都可以使用会话ID来获取用户信息。通过这种方式,female.com上的登录可以生成会话数据,识别男性用户,然后使用包含足迹和会话ID(以及传输中的短ttl)的查询字符串将该页面传递给male.com。然后male.com可以识别查询字符串数据,解析它,验证并快速访问会话数据。

+0

为什么我应该使用查询字符串来传递数据。这是同一个应用程序。我没有考虑到会话绑定到域的事实,或者我错了吗? – 2010-02-21 18:18:43

+0

@Martijn B:会话实际上绑定到一个进程,并且每个网站都在单独的进程下运行。除非您使用独立的状态服务器并提供自定义元素以允许多个域访问常用会话,否则您将遇到数据传输问题。它们可能是相同的应用程序名称和应用程序池,但您并不是在讨论应用程序设置。你在谈论用户设置。这些东西保存在应用程序池之外,所以您需要能够在域之间传输这些数据。这意味着一个帖子标题或查询字符串。 – 2010-02-21 19:02:37

+0

是的,但在我的情况下,它是在同一个进程中运行的同一个网站。它只是指向同一网站的两个域名。 – 2010-02-21 19:33:47