【问题标题】:Loading routes according to HTTP_HOST in MVC4MVC4中根据HTTP_HOST加载路由
【发布时间】:2012-06-07 16:30:12
【问题描述】:

我有一个多租户 MVC4 网站,我想在其中根据传入的主机和域名设置 RouteTable,例如 www.domain1.comwww.domain2.comwww.domain3.co.uk 可以根据主机和域名在路由表中附加一个或多个附加值。

DNS 服务器已经设置了许多带有主机的不同区域,我使用 IIS7 作为“自定义 Web 服务器”而不是使用 Visual Studio 2012 开发服务器,以便获得正确的 HTTP_HOST 值可用于我在 Request 变量中。

我对 IIS7 的问题是,如果您尝试在 RegisterRoutes 方法中调用 HttpContext.Current.Request.ServerVariables["HTTP_HOST"] 的值,其中所有其他路线映射完成。

我需要做的主要事情是在请求管道中的某个点确定最终将在 HTTP_HOST 服务器变量中结束的值。该值需要存储并在使用前适当更新路由表。

它是否需要 Http 模块、Http 处理程序、动作过滤器或类似的东西?或者在 MVC 管道中是否有其他地方可以做到这一点。

Crispin

【问题讨论】:

    标签: c# iis-7 asp.net-mvc-routing


    【解决方案1】:

    据我所知,没有对基于主机的路由的内置支持,但您可以创建一个 Route 子类来提取主机值。这是一个示例:

    http://blog.maartenballiauw.be/post/2009/05/20/aspnet-mvc-domain-routing.aspx

    这是为 MVC3 编写的,但在 MVC4 中应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 2017-03-17
      • 1970-01-01
      • 2020-08-16
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      相关资源
      最近更新 更多