加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:11:56 所属栏目:asp.Net 来源:网络整理
导读:我们刚刚发现了新的“云”托管问题. 已配置基本NAT /端口转发,因为它们不允许多个内部IP,因此可以为多个站点执行SSL证书. 这会导致在指定协议的情况下生成的任何MVC路由出现问题. 此外,如果尝试转到需要登录的URL,则重定向的https登录URL中的ReturnUrl参数也
我们刚刚发现了新的“云”托管问题.
已配置基本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时,它将始终使用用户请求的网站的主机头而不是端口转发的版本,是的!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读