当前位置 : 主页 > 网络编程 > ASP >

asp.net – MVC3生成包含端口号的URL,如何阻止它

来源:互联网 收集:自由互联 发布时间:2021-06-24
我们刚刚发现了新的“云”托管问题. 已配置基本NAT /端口转发,因为它们不允许多个内部IP,因此可以为多个站点执行SSL证书. 这会导致在指定协议的情况下生成的任何MVC路由出现问题. 此
我们刚刚发现了新的“云”托管问题.
已配置基本NAT /端口转发,因为它们不允许多个内部IP,因此可以为多个站点执行SSL证书.

这会导致在指定协议的情况下生成的任何MVC路由出现问题.
此外,如果尝试转到需要登录的URL,则重定向的https登录URL中的ReturnUrl参数也具有端口号.

问题是 – 是否有任何方法告诉M​​VC永远不要包含端口号,即使存在一个端口号,缺少使用UrlHelpers操作/路由方法重载,允许您指定域,从而手动剥离端口号.

如果从上面不清楚请求过程是什么样的,这里有一个小例子:

>用户浏览器向网站发出请求
>服务器转发相同的URL但附加了端口号
>生成页面
>响应发送回用户浏览器.
>用户登录但现在返回URL具有端口,因此当重定向用户获取页面时无法显示.

由于端口转发malarkey,这似乎导致MVC路由变得混乱.
不太了解技术服务器端我不确定是否只是托管公司没有在IIS或NAT中正确配置某些东西,或者是否只有一些web.config内容需要配置以使MVC生成正确的URL好像此端口malarkey不存在.

任何提示或指示最受赞赏.

幸运的是,事实证明有一个配置解决方案(因为人们问“代码更改怎么样?” – >我:“说真的?不,这一定是配置问题”).

解决方案易于实施;将以下内容添加到< appSettings> web.config的一节:

< add key =“aspnet:UseHostHeaderForRequestUrl”value =“true”/>

因此,当ASP.NET / MVC生成URL时,它将始终使用用户请求的网站的主机头而不是端口转发的版本,是的!

网友评论