2010-11-11 85 views
2

Helo Guys!Asp.Net MVC應用程序中的子域

我將開始開發一個營銷網站,用戶將能夠在這個網站上創建帳戶。我想使用子域名分隔用戶的區域,就像wordpress.com,ning.com等一樣。如果用戶創建了一個帳戶,例如:「john」,網站應該在john.mydomain.com中爲此進行響應用戶區,但它會是相同的代碼(分隔我的子域)。

我想知道,我如何做一個代碼來識別帳戶(在子域中)以顯示該網站的正確帳戶?

PS:當然,它不被驗證顯示網站。

謝謝

回答

2

我的哥們,我得到我們的這個網站之一。我們有一個數據庫表,其中包含Domain和SiteId。

在基礎控制器中,我們在進入域時解析域,然後在數據庫中找到相應的SiteId。所有控制器都從這個基礎控制器繼承而來,並且SiteId被傳遞給我們模型的每個調用。

Admin.Site.com -> SiteId = 1 
Frank.Site.com -> SiteId = 2 

當有人打Admin.Site.com,1 SITEID傳遞給模型要麼檢索數據,或者保存/編輯/添加/刪除它。

下面是我們用來獲取域代碼:

public Website CurrentWebsite 
{ 
    get 
    { 
     if (_website == null) 
     { 
      var domain = HttpContext.Request.Url.Host; 
      _website = _websiteRepository.GetWebsiteByDomain(domain); 
     } 
     return _website; 
    } 
} 
2

在域名後asp.net mvc的啓動路徑處理,因此它不能使用常規路線處理被抓。

您可以創建一個路由處理程序,在評估路由之前將子域添加到路由數據中(從Request.Url中獲取它)。

相關問題