4
我現在有一個使用ID連接使用谷歌賬號的認證一個asp.net核心應用。當此應用程序部署和位於負載平衡器後面,它重定向到登錄頁面失敗,因爲它設置URI爲http來代替https,還設置了OpenID的服務器重定向URI沒有HTTPS,有一種設置選項的方法,以便它知道它應該使用https?設置OpenID和AspCore背後負載平衡器
我現在有一個使用ID連接使用谷歌賬號的認證一個asp.net核心應用。當此應用程序部署和位於負載平衡器後面,它重定向到登錄頁面失敗,因爲它設置URI爲http來代替https,還設置了OpenID的服務器重定向URI沒有HTTPS,有一種設置選項的方法,以便它知道它應該使用https?設置OpenID和AspCore背後負載平衡器
按照註釋通過@Tratcher這讓通過建立中間件來檢查的X轉發頭如下解決:
app.Use(async (context, next) =>
{
if (context.Request.Headers.ContainsKey("X-Forwarded-Proto") ||
context.Request.Headers.ContainsKey("X-Forwarded-For"))
{
context.Request.Scheme = "https";
}
await next.Invoke();
});
拍攝X轉發的報頭,並將其應用到身份驗證的請求之前。有一個UseForwardedHeaders中間件這一點。 – Tratcher