ASP.NET MVC。数据驱动的子域名?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (48)

我们正在创建一个多tennant Web应用程序,通过子域(customer1.ourapp.com,customer2.ourapp.com等)标识租户。

子域名的设置必须由数据驱动 - 也就是说,我们不希望每次获得新客户时都必须修改IIS配置(以手动或编程方式)。

在MVC中,检查请求中的子域是否有效的最佳位置(即子域存在于数据库中的某个表中)

提问于
用户回答回答于

我会创建一个自定义操作过滤器,并在Global.asax中全局注册(添加新控制器时无需担心)。

你也可以考虑创建自定义MvcHandler并在声明路由时指定它。这将允许你指定几条路线(即静态内容),这些路线可以在所有客户端之间共享。

其他解决方案是只使用路由并坚持单一域,所以你不必为昂贵的SSL证书提供通配域。

用户回答回答于

我之前在我的基本控制器类中就是这样做的,如果你或你的客户之后需要SSL证书,使用子域名将会很昂贵。

            var dotIndex = HostingEnvironment.SiteName.IndexOf('.');
            if (dotIndex > 0)
            {
                var subdomain = HostingEnvironment.SiteName.Substring(0, dotIndex);
                customerCode = subdomain;
            }

扫码关注云+社区

领取腾讯云代金券