Мы столкнулись с проблемой использования в качестве pnet ядра 2.2 с Facebook WebView (https://developers.facebook.com/docs/messenger-platform/webview/).
проблема возникает только в настольных браузерах, использующих функцию чата в messenger.com или facebook.com. Мы разработали чат-бота, и в разговоре есть кнопки. Когда пользователь нажимает эту кнопку, WebView показывает нашу веб-страницу. Это веб-приложение является веб-приложением pnet core mvc (размещено в Azure Служба приложений), где действие контроллера на стороне сервера создает Cook ie и записывает его в ответ.
var cookieOptions = new CookieOptions()
{
IsEssential = true,
Expires = DateTime.UtcNow.AddYears(1),
};
Response.Cookies.Append("COOKIE_NAME", "cookievalue", cookieOptions);
Когда эта страница загружена из Facebook WebView (из чата FB), созданный выше повар ie (на стороне сервера) отсутствует.
В базовом веб-проекте as pnet Startup.cs cook ie промежуточное ПО настроено так:
public void ConfigureServices(IServiceCollection services)
{
...
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseCookiePolicy();
...
}
Что я пробовал:
- если тот же повар ie вставлен со стороны клиента javascript, повар ie доступен в веб-просмотре Facebook.
document.cookie = "COOKIE_NAME=cookievalue";
Тот же сценарий работает правильно с использованием asp. net fwk 4.7.2 и веб-просмотра Facebook.
из мобильного приложения (мессенджера) он работает как Я ожидал, готовить ie доступно
Я думаю, что источник проблемы может быть в WebView, потому что страница отлично работает при загрузке из обычного браузера - не из WebView (Chrome , IE, Edge, FF, Safari и т. Д. c), доступны оба варианта cook ie (на стороне сервера и клиента).
В чем может быть проблема со сценарием, использующим pnet core 2.2 и Facebook WebView?
Спасибо за помощь!