我有一個ASP.NET MVC應用程序有以下部署要求:高級ASP.NET MVC路由方案
的URL結構必須是這樣的:
http://server/app/[enterprise]/[communinty]/ {控制器}/{行動} /。 ..
我想我能做的是在MVC路由處理程序獲得它之前攔截URL,刪除[enterprise]/[community]部分,然後允許MVC繼續處理如果原始網址未包含這兩個細分受衆羣。
這裏的原因:
申請公開多個門戶向多個客戶(企業),以及企業內的每個社區都有自己的用戶羣。這種方案也可以通過將一個應用程序實例(二進制文件,內容,web.config)物理地部署到每個[社區]目錄中來實現,但出於後勤和性能的原因,我認爲我們不想走這條路。所以我試圖通過路由技巧來虛擬化它。
任何有關如何去實施這個計劃或備用解決方案的建議將不勝感激。
我們在IIS 7上,如果這有什麼區別。
因此,人們訪問'http:// server/app/MyCompany/FightingDogs/Home/Index',然後您想提取MyCompany/FightingDogs,以便URL現在讀取'http:// server/app/Home/Index '? (我想你在會話或cookie中存儲對MyCompany/Fightingdocs的引用?) – jao 2010-07-23 20:43:12
不完全。我希望瀏覽器可見的URL保持爲http:// server/app/MyCompany/FightingDogs/Home/Index,但我不希望MVC控制器/模型/等必須知道「MyCompany/FightingDogs」部分。 – jlew 2010-07-23 20:49:24
不使用路由會更有意義,而是在登錄時將當前用戶的企業和社區存儲在會話中?我可以想象,如果它們對於每個用戶羣都是唯一的,那麼很難在文檔中包含URL。 – Ryan 2010-07-24 04:07:07