[英]Identity Server with MVC Client running behind an AWS Load Balancer
[英]MVC HTTPS redirection when behind a load balancer
我在Amazon Elastic Load Balancer后面的Amazon EC2上的某些IIS服务器中使用MVC5。 IIS服务器仅运行HTTP协议,并且ELB转换为HTTPS。
IIS服务器不知道用户是否通过HTTPS访问,因此我有一个重写规则,检查“ X-Forwarded-Proto”标头以将用户重定向到HTTPS。
不幸的是,当需要登录时,MVC / IIS会将用户重定向到HTTP中的登录页面 。
如果我使用http://www.redirect-checker.org/之类的工具检查我的网站,则会得到以下结果:
301永久移动(我的URL重写规则)
找到302(需要登录名重定向->为什么要HTTP?)
http://example.com/Account/Logon?ReturnUrl=%2F
301永久移动(同样,我的URL重写规则)
https://example.com/Account/Logon?ReturnUrl=%2F
200 OK
我想念什么吗?
我可以配置登录重定向以保留协议,从而消除这些重定向之一吗?
更好的是,为了只进行一个重定向,我可以以某种方式优先于登录重定向规则并使其强制HTTPS吗?
非常感谢!
附录:我检查了像“ RedirectToAction”这样的命令发送的地址是“ / Index2”,而不是整个“ http://example.com/Index2 ”。 很好,因此保留了用户协议。
假设您使用的是ASP.NET表单身份验证,请在web.config
中查看Authentication
配置,然后将requireSsl="true"
添加到<forms>
元素中,如下所示:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" requireSSL="true" />
</authentication>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.