根据MVC4中的HTTP_HOST加载路由

时间:2012-06-07 16:30:12

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

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

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

我对IIS7的问题是HttpContext.Current.Request.ServerVariables [“HTTP_HOST”]的值不可用如果你试图在 RegisterRoutes 方法中调用它所有的完成其他路线映射。

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

它是否需要Http模块,Http Handler,Action Filter或者其他什么?或者在MVC管道中还有其他地方可以做到这一点。

克里斯平

1 个答案:

答案 0 :(得分:0)

我所知道的基于主机的路由没有内置支持,但你可以创建一个拉取主机值的Route子类。这是一个例子:

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

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