2010-01-12 27 views
12

Sin embargo, otra publicación de inquilinato múltiple tengo miedo. Simplemente no puedo encontrar una buena solución a mi problema, he leído todas las grandes publicaciones sobre multi-tenencia para ASP MVC pero aún necesito algunos buenos consejos.Multi inquilino en ASP MVC

Voy a crear una presencia corporativa para uno de mis clientes. La estructura de su compañía es como una compañía principal (por ejemplo, Acme Group Ltd.) que posee varias otras compañías (por ejemplo, Acme Holding Ltd, Acme Technology Ltd., Acme Maritime Ltd., etc.).

Quiero utilizar un proyecto ASP MVC para servir como contenedor de todos los sitios para reducir el código necesario y mantenerlo SECO. También quiero que todos los sitios usen la misma base de datos de membresía.

Mi primer pensamiento fue crear una carpeta de controlador para cada subcompañía y un controlador raíz para la página principal corporativa. A continuación, se vería como:

acme.com ("página corporativa principal")
acme.com/Holding ("Acme Holding SA")
acme.com/Maritme ("Acme Maritme Ltd. ")
...

Esta estructura está bien para mí, pero también quiero a los usuarios de la página web para acceder a cada sub-sitio basado en sus propios dominios separados, por ejemplo:

h olding.acme.com (Esto debería dirigir a "acme.com/Holding").
...

Eso sería, por supuesto, también funciona, pero la cosa es que no quiero la url a cambiar cuando el usuario se dirige a "acme.com/Holding". Me gustaría que siga siendo "sosteniendo.acme.com", "sosteniendo.acme.com/About", "sosteniendo.acme.com/Contact", etc. en lugar de "acme.com/Holding/Contact", etc.

¿Cuál sería la mejor práctica para usar en este proyecto en particular, alguna idea?

+1

¿Tiene acceso a MVC2? ¿Y has mirado la función 'áreas' en él? – ChadT

+0

En realidad, estoy usando MVC2 pero no he visto las áreas. Voy a echar un vistazo ahora. – Martin

Respuesta

6

Hazlo simple, usa IIS URL Rewrite Module. Puede configurarlo para reescribir URL acme-holding.com/* a 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

Supongo que iré con esto combinado con la sugerencia de DaRKoN_s sobre las "áreas" en MVC2. Me pregunto si esta sería la mejor práctica o debería manejarla de manera diferente. – Martin

+2

Creo que la mejor práctica sería redirigir en lugar de reescribir. A Google no le gusta el mismo contenido con diferentes URL. –

Cuestiones relacionadas