这个问题与其他问题不同,因为我到目前为止看到的所有问题都在谈论数据库。我理解多租户的数据库方面,但我不是百分之百确定前端的方式。
我正在设计一种基本上是客户托管服务的产品。就多重性而言,您可以想到托管的FogBugz帐户。客户注册,他们获得自己的子域,然后他们去customersubdomain.thenormalurl.com并登录他们的应用程序的一小部分。
当客户注册时,我们需要为子域设置DNS记录,但是从应用程序端,我们如何将应用程序“范围”到该客户?它只是应该查看请求的URL或是否有其他方式?这对我来说似乎过于简单,但也许我只是想让一些应该简单的事情复杂化。
这通常是如何在ASP.Net世界中完成的?
答案 0 :(得分:3)
Luke Sampson在ASP.NET MVC下使用子域为多租户应用程序提供了一些技术和示例代码:
http://blog.lukesampson.com/subdomains-for-a-single-application-with-asp-net-mvc
答案 1 :(得分:2)
是的,看看子域名。如果您的用户登录,则可以忽略子域并通过其登录凭据确定他们是谁。在弄清楚他们是谁之后,这只是获取正确数据而不是显示错误数据的问题。这就是所有这些数据库问题的所在。你可以通过使用单独的数据库或通过用客户密钥标记所有记录来“确定”范围。所以你的应用必须实现它。