2010-02-21 79 views
3

我有兩個域名,例如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

回答

2

您可以使用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

0

的瀏覽器如果在同一臺服務器的域是很重要的它並不重要。 您可以在iframe中打開male.com以檢查cookie或爲這兩個域設置cookie。 或跟蹤用戶使用他們的IP,但我wouldnt建議。

+0

和我開始覺得我誤解了這個問題 – n00b 2010-02-21 17:54:04

0

最簡單的方法是建立一個公共會話服務器,這兩個站點都可以使用會話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

相關問題