簡體   English   中英

在負載平衡器之后進行MVC HTTPS重定向

[英]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/之類的工具檢查我的網站,則會得到以下結果:

http://example.com/

301永久移動(我的URL重寫規則)

https://example.com/

找到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM