Использование Asp.Net Core 2.1.4.Приложение находится за обратным прокси-сервером Nginx, запускаемым из образа докера https://github.com/jwilder/nginx-proxy, который включает в себя конфигурацию заголовка x-forwarded- *.
В моем методе Startup.Configure
первое, что я делаюis:
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.All
});
Затем для настройки внешней аутентификации в ConfigureServices:
services.AddAuthentication().AddFacebook(facebookOptions =>
{
facebookOptions.AppId = Configuration["FacebookAppId"];
facebookOptions.AppSecret = Configuration["FacebookSecret"];
})
.AddGoogle(googleOptions =>
{
googleOptions.ClientId = Configuration["GoogleClientId"];
googleOptions.ClientSecret = Configuration["GoogleClientSecret"];
});
И для настройки Identity:
services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<IdentityDbContext>()
.AddDefaultTokenProviders();
Тогда у меня есть действие контроллера, которое мойВойдите в форму сообщений на:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public IActionResult ExternalLogin(string provider, string returnUrl = null)
{
// Request a redirect to the external login provider.
var redirectUrl = Url.Action(nameof(ExternalLoginCallback), "Account", new { returnUrl });
var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);
return Challenge(properties, provider);
}
HTTP работает на весь сайт.Я вижу в инструментах разработчика Chrome, что вызов маршрута, который ведет к ExternalLogin, осуществляется через https, но затем приложение перенаправляет меня в Facebook или Google с redirect_uri, который является http.После аутентификации и перенаправления обратно на URL-адрес http мое приложение автоматически перенаправляет на https.
Как я могу заставить Identity генерировать защищенный перенаправляющий Uris?