我在 Amazon EC2 上的一些 IIS 服务器中使用 MVC5,位于 Amazon Elastic Load Balancer 后面。IIS 服务器只运行 HTTP 协议,ELB 转换为 HTTPS。
IIS 服务器不知道用户是否通过 HTTPS 访问,所以我有一个重写规则检查“X-Forwarded-Proto”标头以将用户重定向到 HTTPS。
不幸的是,当需要登录时,MVC/IIS 将用户重定向到HTTP 中的登录页面。
如果我在http://www.redirect-checker.org/之类的工具中检查我的网站,我会得到以下类型的结果:
301 永久移动(我的 URL 重写规则)
302 Found(需要登录的重定向 -> 为什么要使用 HTTP?)
http://example.com/Account/Logon?ReturnUrl=%2F
301 永久移动(再次我的 URL 重写规则)
https://example.com/Account/Logon?ReturnUrl=%2F
200 好
我错过了什么吗?
我可以配置登录重定向以保持协议,消除这些重定向之一吗?
更好的是,我可以以某种方式在登录重定向规则之前并使其强制使用 HTTPS,以便只有一个重定向吗?
非常感谢!
附录: 我检查了像“RedirectToAction”这样的命令发送的地址像“/Index2”,而不是整个“ http://example.com/Index2 ”。这很好,所以它保留了用户协议。