我们正在构建一个在Docker容器中运行的具有dotnet核心的Web应用程序。我们已将应用程序放在WS2016上的IIS后面,用作反向代理。借助于URL重写模块(在我们的情况下,我们称其为“ web”),使用容器名称作为主机名将传入我们URL(www.myurl.com)的请求转发到相关的docker容器。此设置适用于此处。
但是,几天前,我们需要添加Facebook oauth授权支持才能向系统注册。我们将授权设置如下:
...
services.AddAuthentication().AddFacebook(o =>
{
o.CallbackPath = new PathString("/account/facebookreturn");
o.AppId = appSettings.FacebookLogin.AppId;
o.AppSecret = appSettings.FacebookLogin.AppSecret;
})
...
我们的Facebook身份验证挑战然后使用以下重定向uri将用户重定向到Facebook oauth页面: https://www.facebook.com/v2.12/dialog/oauth......redirect_uri=http%3A%2F%2Fweb%2Faccount%2Ffacebookreturn&state= ....
如您所见,redirect_uri
具有docker容器的容器名称/主机名,而实际上应为“ www.myurl.com”。
我们尝试了几种解决方案,例如使用x-forwarded
标头。使用UseIISIntegration()
和UseUrls
似乎也不起作用。我们在这里想念什么?我对IIS和Web标头的经验不是很多,所以这很明显,我感谢您的帮助。