2009-10-02 88 views
3

我有一個應用程序要寫在ASP.Net 3.5需要管理不同網站的子域名。管理網站和受控網站託管在不同的Windows服務器上,但都運行IIS 6.0。可以在ASP.Net應用程序中以編程方式管理子域嗎?

管理網站需要提供一個UI,可以添加或刪除受控站點上的子域,以便對這些子域(即mysubdomain.controlledsite.com和thatothersubdomain.controlledsite.com)的請求導航到受控制的不同部分(或者,如果需要將所有這些設置爲不同的Web應用程序,則這些Web應用程序也必須以編程方式創建或刪除)。

從哪裏開始?這甚至有可能嗎?我在其他一些SO問題(Is it possible to make an ASP.Net MVC route based on a subdomain?)上看到了一些關於路由的內容,但我不知道這是否適合我的情況(我沒有使用MVC)。我可以在管理網站和受控網站上修改代碼,所以如果要編程來完成這項工作,我可以做到這一點。

具體來說,如果代碼保持其在受控站點上的方式(我可以根據需要更改),我需要接收像http://xxxx.mysite.com/這樣的請求,並將其映射到http://www.mysite.com/Home/xxxx/,同時保留客戶端看到的URL爲前任的。

回答

2

你可能通過使用URL重寫,你可以通過編寫一個HTTP模塊(實現IHttpModule的一類)在ASP.Net做並使用HttpContext對象的RewritePath方法實現這一

你可以設計你的模塊,因此它會根據您的管理應用程序可以根據需要修改的一些配置文件來重寫URL。

以下鏈接解釋概念的更多:

隨着這些IIS 6的配置可以稍微棘手,搜索有關配置通配符文章路徑。
另外我不完全確定這種方法是否適用於子域。

+0

好主意。我正在編寫一個小測試應用程序,看看這種方法是否可以與我需要的一起工作。 – 2009-10-02 16:54:57

+0

我終於證明了這個概念。感謝讓我開始。 – 2009-11-04 21:47:53

+0

很酷,很高興知道我的幫助:-) – RobV 2009-11-05 00:26:11

0

asp.net MVC中包含的默認路由框架不能使用URL的域部分。我對自己感到失望。但有一個article about using a custom RouteBase來啓用子域方案。我還沒有嘗試過,所以我不能保證所描述的技術,但它至少有望成爲一個起點。

至於管理網絡工具來管理所有......你將需要推出自己的管理工具。你如何做到這一點取決於你的應用程序的設計。我只是將兩個應用綁定到同一個SQL數據庫來存儲每個子域路由。管理界面應該是相當平凡的。只需要一組相當簡單的頁面來執行存儲在數據庫中的路由上的CRUD操作即可。

在其他站點(公共站點)的global.asax中,您只需從DB獲取路由並單獨註冊每個站點。

+0

我正在按照管理工具的描述進行操作 - 將子域名稱存儲在數據庫中。你可以多談一些關於「分別註冊每一個」的內容嗎? – 2009-10-07 13:39:26

+0

我只是想說,你會使用for/foreach循環遍歷數據庫中的每條路徑,並將每個路徑添加到RouteTable中。 – 2009-10-07 16:20:56

相關問題