Asp.net mvc 如何使用ASP.NETMVC创建多租户应用程序?

Asp.net mvc 如何使用ASP.NETMVC创建多租户应用程序?,asp.net-mvc,asp.net-mvc-2,multi-tenant,Asp.net Mvc,Asp.net Mvc 2,Multi Tenant,这个问题与其他问题不同,因为到目前为止我看到的所有问题都是关于数据库的。我理解Multitenance的数据库方面,但我不能100%确定如何做前端 我正在设计一款基本上是为客户提供托管服务的产品。就多功能而言,您可以想到一个托管的FogBugz帐户。客户注册,获得自己的子域,然后进入customersubdomain.thenormalur.com并登录到应用程序的一小部分 当客户注册时,我们需要为子域设置DNS记录,但是从应用程序方面来说,我们如何将应用程序“范围”到该客户?它应该只是查看请求

这个问题与其他问题不同,因为到目前为止我看到的所有问题都是关于数据库的。我理解Multitenance的数据库方面,但我不能100%确定如何做前端

我正在设计一款基本上是为客户提供托管服务的产品。就多功能而言,您可以想到一个托管的FogBugz帐户。客户注册,获得自己的子域,然后进入customersubdomain.thenormalur.com并登录到应用程序的一小部分

当客户注册时,我们需要为子域设置DNS记录,但是从应用程序方面来说,我们如何将应用程序“范围”到该客户?它应该只是查看请求发送到的url,还是有其他方式?这对我来说似乎太简单了,但也许我只是想把应该简单的事情复杂化


在ASP.Net世界中通常是如何做到这一点的?

Luke Sampson为使用ASP.Net MVC下的子域的多租户应用程序提供了一些技术和示例代码:


是的,看看子域。如果您的用户登录,那么您可以忽略子域并通过其登录凭据确定他们是谁。在你弄清楚他们是谁之后,接下来的问题就是获取正确的数据,而不是显示错误的数据。这就是所有这些DB问题的用武之地。您可以通过使用单独的数据库或使用客户密钥标记所有记录来进行“范围界定”。所以你的应用程序必须实现这一点。

那么就这么简单?在登录页面上,只需检查子域和凭据,然后从那时起使用经过身份验证的用户?就这样?我想这是有道理的,我只是确定有一些事情我没有想到,从这一点来说,这真的很简单。重大决策是关于如何保持数据分离。所有的查询都需要做正确的事情——不管是什么,这取决于数据的结构。