我们的环境设置包含负载均衡器(在https下)和Web服务器(在http下)。因此,负载平衡器通过http与Web服务器进行交互。
我们还必须更改应用程序配置以保护cookie:
AntiForgeryConfig.CookieName = "site";
AntiForgeryConfig.RequireSsl = true;
当我们生成“操作”或“ api端点”应用程序的绝对URL时,请插入80端口以生成结果url。发生这种情况是因为我们在请求上下文中具有“ http”架构,并将“ https”协议作为参数添加到UrlHelper.RouteUrl方法。 MVC检查端口80(RequestContext中HTTP的默认端口)不是'https'(请求协议)的默认协议,然后将端口添加到url。
实际结果:
https://website.com:80/questions/ask
预期结果:
https://website.com/questions/ask
解决此问题的最佳方法是什么?