2010-01-12 23 views
12

Jeszcze jeden post multi-najemcy, boję się. Po prostu nie mogę znaleźć dobrego rozwiązania mojego problemu, przeczytałem wszystkie świetne posty na temat multi najemców dla ASP MVC, ale nadal potrzebuję dobrych rad.Multi-dzierżawa w ASP MVC

Zamierzam stworzyć obecność firmy dla jednego z moich klientów. Ich struktura firmy jest jak główna firma (np. Acme Group Ltd.), do której należy kilka innych firm (np. Acme Holding Ltd, Acme Technology Ltd., Acme Maritime Ltd., itp.).

Chciałbym użyć jednego projektu ASP MVC, aby służyć jako kontener dla wszystkich stron, aby ograniczyć wymagany kod i utrzymać go na sucho. Chcę również, aby wszystkie witryny korzystały z tej samej bazy członkowskiej DB.

Moja pierwsza myśl polegała na utworzeniu jednego folderu kontrolera dla każdej podrzędnej i jednego głównego kontrolera dla głównej strony korporacyjnej. Wtedy to będzie wyglądać:

acme.com ("Corporate strony głównej")
acme.com/Holding ("Acme Gospodarstwa Ltd.")
acme.com/Maritme ("Acme Maritme Ltd. „)
...

struktura ta jest w porządku przez mnie, ale chcę również użytkownicy strony internetowej dostęp do każdej podstrony na podstawie własnych oddzielnych domenach, ex:

h olding.acme.com (Powinno to prowadzić do "acme.com/Holding").
...

To byłoby oczywiście działa, ale jest to, że nie chcę, aby zmienić adres URL, gdy użytkownik jest kierowany do „acme.com/Holding”. Chciałbym, aby nadal było to "holding.acme.com", "holding.acme.com/About", "holding.acme.com/Contact" itp. Zamiast "acme.com/Holding/Contact" itp.

Jaka byłaby najlepsza praktyka do zastosowania w tym konkretnym projekcie, jakiekolwiek myśli?

+1

Czy masz dostęp do MVC2? Czy spojrzałeś na funkcję "obszarów"? – ChadT

+0

Właściwie to ja używam MVC2, ale nie patrzyłem na obszary. Zajrzę teraz. – Martin

Odpowiedz

6

Zachowaj prosty, użyj IIS URL Rewrite Module. Można ustawić go przepisać acme-holding.com/* URL do acme.com/Holding/*:

<rewrite> 
    <rules> 
     <rule name="Forward to acme.com"> 
      <match url=".*" /> 
      <action type="Rewrite" url="http://acme.com/Holding/{R:0}" /> 
     </rule> 
    </rules> 
</rewrite> 
+0

Zgaduję, że pójdę z tym połączonym z końcówką DaRKoN_s dotyczącą "obszarów" w MVC2. Zastanawiam się tylko, czy to byłaby najlepsza praktyka, czy powinienem traktować to inaczej? – Martin

+2

Uważam, że najlepszą praktyką byłoby przekierowanie zamiast przepisywania. Google nie lubi tej samej treści z różnymi adresami URL. –

Powiązane problemy