我有一个blazor应用程序,它使用302重定向来重定向到登录页面。如果从本地网络打开它,它会在http标头中返回:
Status Code: 302
http://myvm/Identity/Account/Login?returnUrl=%2F
它按预期工作。
当从Azure应用程序网关访问此虚拟机时,重定向起作用,但网关仅替换主机,而不替换协议。
例如,我叫:https://example.com
此域指向Azure应用程序网关。
网关返回
Status Code: 302
http://example.com/Identity/Account/Login?returnUrl=%2F
请注意,它取代了主机,但没有取代协议(应该是https,而不是http)。
我的解决方法是添加一个从https到http的重定向规则。
我不喜欢它,因为网关仍然返回http,但随后执行新规则并重定向到https。
有没有一个优雅的解决方案?
1条答案
按热度按时间fzwojiic1#
在我看来,最好的解决方案是在后端响应中重写
Location
标头。This documentation描述了如何从Azure门户创建重写规则,特别是位置标头。然后创建专门的规则,将http://
替换为https://