2012-02-02 85 views
1

我想创建一个多租户网站,其中每个租户都可以创建类似于Dotnetnuke所做的多个门户 。 我想提供一个灵活的动态路由(可以在运行时生效,例如 ,我可以在运行时添加租户),如下所述。 我还希望允许/限制某些模块的租户(区域(控制器组) 用于粗粒度访问控制或用于细粒度访问控制的控制器)和 控制器最佳访问控制的操作。MVC 3的灵活动态路由多租户架构

  • 承租人没有自己的域或子域 - 使用SaaS的主机域名)

    tenant1.saasplatform.com (implicitly means has /portal0 suffix) 
    tenant1.saasplatform.com/portal0 
    tenant1.saasplatform.com/portal1 
    
    saasplatform.com/tenant1 (implicitly means has /portal0 suffix) 
    saasplatform.com/tenant1/portal0 
    saasplatform.com/tenant1/portal1 
    
  • 租客拥有网域或子网域)

    tenant1.com (implicitly means has /portal0 suffix) 
    tenant1.com/portal0 
    tenant1.com/portal0 
    
    tenant1.com (implicitly means has portal0. prefix) 
    portal0.tenant1.com 
    portal1.tenant1.com 
    

鉴于各种组合,我想提取tenantkey基于每个租户的配置。 我也想提取门户号码(它可以是门户或唯一名称的唯一编号)。

后,门户网站数量

一切都将通过正常的路由来解决数值{controller}/{action}

tenant1.com[/portal0]“[]”中任选括号内的内容,它将被视为“portal0”

{tenantkey}{portal0} 

tenant1.saasplatform.com[/portal0] 
{tenantkey}.saasplatform.com}{portal0} 
{tenantkey}.othersaasplatform.com}{portal0} 

[portal0.]tenant1.com 
{portalkey}.{tenantkey} 

一些好的想法如下所示。这篇文章很古老。我想知道MVC 3中是否有新的东西?

http://blog.maartenballiauw.be/post/2009/05/20/ASPNET-MVC-Domain-Routing.aspx

Tenant-specific routes for dynamically loaded modules

回答