.net 正在重定向到同一服务器的另一个域

.net 正在重定向到同一服务器的另一个域,.net,asp.net,iis,iis-7,asp.net-3.5,.net,Asp.net,Iis,Iis 7,Asp.net 3.5,我有两个域名,例如www.male.com和www.female.com,它们都指向同一个网站应用程序。在这个应用程序中,我有一个HTTP模块,它检查用户的会话是否仍然处于活动状态,如果仍然处于活动状态,则检查用户是男性还是女性 我想检查用户是从哪个域进入网站的。如果用户是男性,但输入(来自)www.female.com,则必须将该用户重定向到www.male.com。如果是女性,则必须采取相反的措施 其他情况包括: 男性用户进入www.female.com/articles/test.asp

我有两个域名,例如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

对于浏览器来说,域是否重要并不重要。 您可以在iframe中打开male.com以检查cookie,也可以为这两个域设置cookie。
或者跟踪使用其ip的用户,但我不建议这样做。

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

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

我开始觉得我误解了这个问题:进行重定向的最佳方式是什么?我为什么要使用查询字符串传递数据。这是相同的应用程序。我没有考虑到一个会话绑定到一个域,或者我在这方面错了?@Martijn B:会话实际上绑定到一个进程,每个网站都在一个单独的进程下运行。除非使用独立的状态服务器并提供自定义元素以允许多个域访问公共会话,否则将出现数据传输问题。它们可能是相同的应用程序名称和应用程序池,但您并不是在谈论应用程序设置。你说的是用户设置。这些东西被保存在应用程序池之外,因此您需要能够在域之间传输这些数据。这意味着一个帖子标题或查询字符串。是的,但在我的例子中,它是在同一进程中运行的同一个网站。它只是指向同一个网站的两个域名。我知道。我在大规模生产环境中运行同样的东西。尽管它们看起来像是在同一个进程中运行,但事实并非如此。它们卷起w3wp.exe的单独实例以保持单独的状态。除了完整的应用程序变量外,它们之间没有真正的内存共享。接受答案中提到的Request.Url属性保留在标题中。这是另一种“发帖”的方式,完全不是我所期望的。我会联系我的主人。谢谢这能回答你的问题吗?还是我能在其他方面提供帮助?