我想创建一个多租户网站,每个租户都可以创建多个门户网站 类似于Dotnetnuke所做的。 我想提供灵活的动态路由(可以在运行时生效,例如 我可以在运行时添加租户),如下所述。 我也想允许/限制租户使用某些模块(区域(控制器组) 用于粗粒度访问控制或用于细粒度访问控制的控制器)和 控制器用于最佳访问控制的操作。
租户不拥有域或子域 - 使用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
答案 0 :(得分:0)
如果从数据库中获取每个门户的内容,最好的办法是挂钩扩展点。 http://www.simple-talk.com/content/article.aspx?article=1358