Это может быть странным случаем, и не стесняйтесь, дайте мне знать, если есть лучший способ в целом.
Итак, у меня есть приложение с балансировщиком нагрузки.Балансировщик нагрузки принимает в HTTP только трафик.Пока все хорошо.
Затем балансировщик нагрузки отправляет его как HTTP на мой asp.netcore.
Что это означает:
Хотя доступна веб-сайт в Https, приложение asp.netcore не знает об этом.
Я указываю его только как HTTPs в среде разработки, так как мои куки-файлы только в HTTPS
Но это вызывает у меня эту проблему:
Смешанный контент: страница в 'pagePath' была загружена через HTTPS, но запросил незащищенный манифест 'путь / сайт.webmanifest.Этот запрос был заблокирован;содержимое должно быть передано по протоколу HTTPS.
Вот мой запуск
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseHttpsRedirection();
}
else
{
app.UseHsts();
}
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseExceptionHandler("/error/500");
app.UseMiddleware<WebRequestLoggerMiddleWare>();
app.UseMiddleware<UserTimeZoneMiddleWare>();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
И моя политика использования файлов cookie, все еще в statup.cs
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = new PathString("/account/login/");
options.AccessDeniedPath = new PathString("/account/forbidden/");
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromHours(cookieSettings.CookieExpirationInHours);
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.HttpOnly = true;
});
Чтобыло бы лучшим способом убедиться, что веб-манифест запрашивается через HTTPS?
Должен ли я просто заставить весь веб-сайт быть HTTPS и маршрутизировать трафик с LB как https?Это один из способов, но в этом не должно быть необходимости ...