首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC。数据驱动子域?

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

Stack Overflow用户
提问于 2011-11-09 17:59:02
回答 2查看 689关注 0票数 7

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

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

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

一些我考虑过的选择,

  1. OnActionExecuting in the controller
  2. In a custom action
  3. IIS module
  4. As the route setup -一个知道有效子域的自定义路由类-与此方法类似- filter

我认为从概念上讲,这是一个路由任务,所以最后一个选项似乎是对的??也就是说,带有不存在的子域的请求本质上是一个无效的url,因此它不应该与路由匹配,而应该落入404。这还允许我们显式地定义需要或不需要有效子域的路由。

EN

回答 2

Stack Overflow用户

发布于 2011-11-09 20:49:38

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

您还可以考虑创建自定义MvcHandler,并在声明路由时指定它。这将允许您指定一些路由(即,对于静态内容),其可以在所有客户端之间共享。

另一种解决方案是只使用路由,并坚持使用单个域,这样您就不必为通配符域的昂贵SSL证书买单。

票数 2
EN

Stack Overflow用户

发布于 2012-01-03 10:31:21

然而,就像@Jakub所说的,如果你或你的客户需要SSL证书,那么使用子域将是昂贵的。

代码语言:javascript
复制
            var dotIndex = HostingEnvironment.SiteName.IndexOf('.');
            if (dotIndex > 0)
            {
                var subdomain = HostingEnvironment.SiteName.Substring(0, dotIndex);
                customerCode = subdomain;
            }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8063248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档