2014-03-05 106 views
0

我們有一個多租戶MVC 4.5站點,其中每個租戶都想將他們自己的一些自定義路線映射到我們的控制器之一。因此,映射需要在會話開始期間進行,並且僅在該會話期間進行,而不是應用程序範圍。MVC 4自定義路線引擎

例如,如果主機URL是 sales.abc.com然後sales.abc.com/products會重定向到salescontroller /指數 tickets.blahblah.net然後/特/ hotrocks也將重定向到salescontroller /指數

當租戶的會話結束時,路線失敗,403

我的想法是掛接到路由引擎檢查傳入的請求,如果該會話定義的自定義路線之一,然後把它傳遞到我們的控制器/操作的路由處理程序。

這是正確的做法嗎?我如何在ASP.NET MVC中實現多租戶?

回答

0

這聽起來像是對一個簡單問題的複雜而笨重的解決方案。

MVC路由系統已經提供了一個約束系統,允許您定義自定義約束。您也可以掛鉤到您自己的可以執行自定義路由的Route對象。

既然你沒有提到你是怎麼做你的多租戶,建議一種方法來處理這個問題並不容易,但我會開始自定義路由,它只在使用特定url時啓用路由(假設你的多租戶是基於url的)。

+0

多租戶是通過主機頭(基於網址)。我會研究約束。謝謝。 – StuTheDog

+0

@StuTheDog - 這並不能解釋你是如何在MVC中進行多租戶的。你使用什麼技術解決方案。有很多方法可以做到這一點。 –