ASP.NET 多租户应用程序

6
我有一个 Asp.net 应用程序 3.5。我希望能够允许多个/不同的客户端使用不同的 URL 访问同一应用程序。我已经成功配置了数据库以实现此功能。 以下是主要内容: 我想将我的应用程序托管在一个域中,比如...

wwww.myapplication.com

然后允许不同的客户端使用以下方式访问同一应用程序:

1) www.clientOne.myapplication.com
2) www.clientTwo.myapplication.com

另外,客户端子域名即 (clientone.myapplication.com 和 clienttwo.myapplication.com) 应该在客户注册时自动生成。
如何实现这一点?非常感谢您的帮助。
一个很好的例子是www.quickschools.com
4个回答

3
我最终找到了我想要的解决方案,所以我想与您分享我的发现。事实证明,我需要从另一个正在运行的Asp.net Web应用程序(从C#代码)创建Web应用程序。
如果您需要开始这项工作,Robbe Morris的教程非常有帮助。
您可能还想查看此文章

0

为了让同一应用程序使用不同的URL,我将使用“301重定向”子域。但我不太清楚如何让Web应用程序创建这些子域。


这将如何运作?请记住客户仍应使用其首选子域名(Always)。 - user437329
那样做不行。用户将被重定向到另一个(子)域。 - Ivo

0

我认为实现这个的方法是将网站设置为服务器上的默认网站,即配置使得所有对服务器IP的请求都命中此网站(除非头部匹配另一个明确寻找它的网站)。这可以通过在IIS设置中不指定头部(仅指定IP地址和端口号)来实现 - 您只能在服务器上的每个IP地址/端口组合上为一个站点执行此操作。

然后查看网站中的请求URL以确定请求的是哪个域名。

这样就不需要“创建”子域了...但您需要拒绝所有无法识别的域名请求。

如果您无法执行此操作,则需要从应用程序调整IIS元数据库 - 这并非不可能,但非常危险,而且可能是个坏主意。


0
通常情况下,在账户配置期间,您需要为每个新租户配置一个新的虚拟站点。请参阅创建新虚拟服务器以了解如何通过编程实现此操作。然而,有些人认为(并且有令人信服的论据...)为每个租户启动一个应用程序域是浪费资源的,应该在应用程序中使用路由来检查HOST标头,详见多租户ASP.NET MVC - 介绍
将IIS/ASP配置为响应您的租户子域名是容易的部分。真正的问题在于为您的租户配置DNS,这取决于您的DNS解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接