Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
В поиске
103 / 51 / 17
Регистрация: 20.04.2014
Сообщений: 826

Яндекс браузер не сохраняет(удаляет) куки после закрытия браузера

11.08.2025, 13:38. Показов 2738. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему то яндекс браузер не сохраняет cookie на моем сайте http://localhost:5000 или http://192.168.1.80:8080
После того как браузер закрываю и открываю по новой приходится по новой авторизовываться. В опере такой проблемы нету. При просмотре "Исследовать элемент" cookie после перезагрузки пустые, сталкивался ли кто то с такой ситуацией?

Данная проблема только с моим сайтом. Другие сайты не теряют авторизацию такие как ВК, яндекс почта, гугл.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public static void Main(string[] args)
{
    var builder = WebApplication.CreateBuilder(args);
    // аутентификация с помощью куки
    builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(o =>
        {
            o.Cookie.Name = "myCookie";
            o.Cookie.HttpOnly = true; // Используем только сервером, JS не сможет читать этот cookie
            o.Cookie.SecurePolicy = CookieSecurePolicy.Always; // Всегда требовать HTTPS соединение
            o.Cookie.SameSite = SameSiteMode.Strict; // Более жесткая защита от CSRF атак
            o.LoginPath = "/Authorization/Index"; // Путь перенаправления для входа
            o.AccessDeniedPath = "/Authorization/Index"; // Путь перенаправления при отказе в доступе
            o.ExpireTimeSpan = TimeSpan.FromMinutes(30); // Срок действия cookie
            o.SlidingExpiration = true; // Обновлять срок действия при каждом действии пользователя
            o.Events = new CookieAuthenticationEvents()
            {
                OnRedirectToLogin = (context) =>
                {
                    context.HttpContext.Response.Redirect("/Authorization/Index");
                    return Task.CompletedTask;
                }, 
                OnRedirectToAccessDenied = (context) =>
                {
                    context.HttpContext.Response.Redirect("/Authorization/Index");
                    return Task.CompletedTask;
                }
            };
        }
        );
    builder.Services.AddAuthorization();
 
    // Add services to the container.
    builder.Services.AddControllersWithViews();
 
    builder.Services.AddHostedService<TimedHostedService>();
    var app = builder.Build();
 
    // Configure the HTTP request pipeline.
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
    }
 
    app.UseHttpsRedirection();
    app.UseStaticFiles();
 
    app.UseRouting();
 
    app.UseAuthentication();   // добавление middleware аутентификации 
    app.UseAuthorization();   // добавление middleware авторизации 
 
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
 
    app.Run();
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.08.2025, 13:38
Ответы с готовыми решениями:

Как сделать чтобы при входе на страницу в кукис писалось значение, а по закрытию браузера оно удалялось?
Как мне сделать чтобы при входе на страницу в кукис писалось значение а по закрытию бровзера оно...

Не сохраняются куки в браузере, если веб-приложение залито на VPS (Ubuntu 18.04.3) и работает через Nginx
ASP.NET Core Web API + React JS (SPA) Всем привет. Такой вопрос. Кто-нибудь вообще когда-то...

Не сохраняется идентификатор сессии в куках
Доброго времени суток! Помогите решить проблему. Не сохраняется идентификатор сессии в куках. ...

12
 Аватар для andrey_f
883 / 536 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
12.08.2025, 08:34
Цитата Сообщение от КВА696 Посмотреть сообщение
на моем сайте http://localhost:5000 или http://192.168.1.80:8080
Цитата Сообщение от КВА696 Посмотреть сообщение
o.Cookie.SecurePolicy = CookieSecurePolicy.Always; // Всегда требовать HTTPS соединение
o.Cookie.SecurePolicy = CookieSecurePolicy.None;
1
В поиске
103 / 51 / 17
Регистрация: 20.04.2014
Сообщений: 826
12.08.2025, 08:47  [ТС]
andrey_f, Увы не помогло.

Даже если я укорочу до
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddCookie(o =>
                {
                    o.Cookie.Name = "myCookie";
                    //o.Cookie.SameSite = SameSiteMode.Lax;
                    o.Events = new CookieAuthenticationEvents()
                    {
                        OnRedirectToLogin = (context) =>
                        {
                            context.HttpContext.Response.Redirect("/Authorization/Index");
                            return Task.CompletedTask;
                        }, 
                        OnRedirectToAccessDenied = (context) =>
                        {
                            context.HttpContext.Response.Redirect("/Authorization/Index");
                            return Task.CompletedTask;
                        }
                    };
                }
                //options => options.LoginPath = "/Authorization/Index"
                );
Ни тепло ни холодно.
0
 Аватар для andrey_f
883 / 536 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
13.08.2025, 09:23
попробуйте явно задать параметры
C#
1
2
3
o.Cookie.SameSite = SameSiteMode.Lax;
o.Cookie.SecurePolicy = CookieSecurePolicy.None;
o.Cookie.IsEssential = true; // чтобы разрешить использование cookie без согласия
0
В поиске
103 / 51 / 17
Регистрация: 20.04.2014
Сообщений: 826
13.08.2025, 12:41  [ТС]
andrey_f, непомогло. Может скрин куков как то может помочь самое интересно что в опере они точно такие же жизнь помечена как сессия, но после перезагрузки этот кук не удаляется

0
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
13.08.2025, 13:31
Ради эксперимента пропишите в host-файле любо рандомный домен, и запустите сайт под ним. При этом укажите именно 80 порт. Можно использовать явно незанятый адресс замыкания, например 127.0.0.42 kba696.nya

У меня подозрение что яндекс видя localhost спецом ничего не запоминает из-за каких-то соображений.
1
HF
 Аватар для HF
1303 / 882 / 199
Регистрация: 09.09.2011
Сообщений: 2,593
Записей в блоге: 2
13.08.2025, 13:49
Цитата Сообщение от КВА696 Посмотреть сообщение
но после перезагрузки этот кук не удаляется
Скорее, он уже снова появился. Не веришь, сравни значение.

Были в этом форуме уже знатоки настройки кук, которые тоже наколбашивали настроек и у них ничего не работало.
К тому что половина настроек, по умолчанию и так уже гарантируют безопасность, а часть уже по умолчанию так и настроено.

C#
1
2
o.LoginPath = "/Authorization/Index"; // Путь перенаправления для входа
o.AccessDeniedPath = "/Authorization/Index"; // Путь перенаправления при отказе в доступе
вот это тоже не правильно. Как ты узнаешь что тебя перенаправили из-за отказа? Ты вот говоришь "по новой приходится по новой авторизовываться." Дак наверное потому что это был отказ а не начальное перенаправление?!

C#
1
o.Cookie.SecurePolicy = CookieSecurePolicy.Always; // Всегда требовать HTTPS соединение
Всегда требуем, но в первом сообщении только http адреса.
P.S. убрал уже, но раз делал, значит копипастил бездумно?
а "app.UseHttpsRedirection();" убрал?

C#
1
app.UseHsts();
Это точно-точно нужно? А не работает в релизе или в дебаге или в обоих?

Опера не показатель. В Эйдже проблемы есть?

Всё убрать, оставить простые команды инициализации и проверять.
1
В поиске
103 / 51 / 17
Регистрация: 20.04.2014
Сообщений: 826
13.08.2025, 15:32  [ТС]
Wolfdp, Чудо не произошло, но мне тоже кажется что яндекс браузер не хочет дружить с сайтами http. Но нету возможности найти публичный сайт без сертификата.

Цитата Сообщение от HF Посмотреть сообщение
Опера не показатель. В Эйдже проблемы есть?
Microsoft Edge - не сбрасывает, и хром тоже не выкидывает но очень смущает что на всех куки с пометкой сесионные. Хотя как я понимаю запись - o.ExpireTimeSpan = TimeSpan.FromMinutes(30); должна была непосредственно указывать дату
Вложение 1516215

Цитата Сообщение от HF Посмотреть сообщение
Всегда требуем, но в первом сообщении только http адреса.
P.S. убрал уже, но раз делал, значит копипастил бездумно?
а "app.UseHttpsRedirection();" убрал?
Да бездумно скачал первый попавшийся пример для внутренней локалки работает и хорошо свои ломать не будут)))
Сайт работает только через http, с https даже не заморачивался с поиском как поднять бесплатно.

Вот конечный результат где все ненужное как я считаю удалил и все равно авторизация слетает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);
 
            // аутентификация с помощью куки
            builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddCookie(o =>
                {
                    o.Cookie.Name = "myCookie";
                    o.Cookie.HttpOnly = true; // Используем только сервером, JS не сможет читать этот cookie
 
                    o.Cookie.SameSite = SameSiteMode.Lax;
                    o.Cookie.SecurePolicy = CookieSecurePolicy.None;
                    o.Cookie.IsEssential = true; // чтобы разрешить использование cookie без согласия
 
 
                    o.ExpireTimeSpan = TimeSpan.FromMinutes(30); // Срок действия cookie
                    o.SlidingExpiration = true; // Обновлять срок действия при каждом действии пользователя
 
                    o.Events = new CookieAuthenticationEvents()
                    {
                        OnRedirectToLogin = (context) =>
                        {
                            context.HttpContext.Response.Redirect("/Authorization/Index");
                            return Task.CompletedTask;
                        }, 
                        OnRedirectToAccessDenied = (context) =>
                        {
                            context.HttpContext.Response.Redirect("/Authorization/Index");
                            return Task.CompletedTask;
                        }
                    };
                }
                );
 
            builder.Services.AddAuthorization();
 
            builder.Services.AddControllersWithViews();
 
            builder.Services.AddHostedService<TimedHostedService>();
            var app = builder.Build();
 
            if (!app.Environment.IsDevelopment())
            {
                app.UseExceptionHandler("/Home/Error");
            }
 
            app.UseStaticFiles();
 
            app.UseRouting();
 
            app.UseAuthentication();   // добавление middleware аутентификации 
            app.UseAuthorization();   // добавление middleware авторизации 
 
            app.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
 
            app.Run();
        }
0
 Аватар для Andrey-MSK
3313 / 2200 / 387
Регистрация: 14.08.2018
Сообщений: 7,404
Записей в блоге: 4
13.08.2025, 15:36
Цитата Сообщение от КВА696 Посмотреть сообщение
с https даже не заморачивался с поиском как поднять бесплатно
Цитата Сообщение от КВА696 Посмотреть сообщение
для внутренней локалки работает и хорошо
А это не катит?
C#
1
2
3
4
5
6
7
8
builder.WebHost.ConfigureKestrel(options =>
{
    options.ListenLocalhost(5000);
    options.ListenLocalhost(7000, config =>
    {
        config.UseHttps();
    });
});
Добавлено через 1 минуту
Ну и это в паре к нему
C#
1
app.UseHttpsRedirection();
1
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
13.08.2025, 15:44

Не по теме:

Цитата Сообщение от КВА696 Посмотреть сообщение
кажется что яндекс браузер не хочет дружить с сайтами http
Все современные браузеры должны детектить что ты пытаешься авторизоваться по http и предупреждать об этом. У хрома (точнее у гугла) вроде как в планах вообще назапрещать куча обращений по http, типа безопасность и всё такое (за что их не очень любят, т.к. это усложняет кеширование трафика и плюс добавляет головной боли с сертификатами там где они нафиг не нужны).

Тем не менее http вроде как ещё никто не списал, ну либо я очень сильно отстал от индустрии.



Я бы ещё развернул на чистой виртуалке яндекс браузер, свой сайт поднял на локальном адаптере, а не замыкании и проверил что там воспроизводится. Ну чтобы 100% убедится что проблема не в окружении, а именно дефолтное поведение браузера. Ну или хотя бы надыбал где-то второй ПК/ноут с яндексом и тоже залогинился.
1
HF
 Аватар для HF
1303 / 882 / 199
Регистрация: 09.09.2011
Сообщений: 2,593
Записей в блоге: 2
13.08.2025, 18:29
Цитата Сообщение от Wolfdp Посмотреть сообщение
Я бы ещё развернул на чистой виртуалке яндекс браузер, свой сайт поднял на локальном адаптере, а не замыкании и проверил что там воспроизводится. Ну чтобы 100% убедится что проблема не в окружении, а именно дефолтное поведение браузера. Ну или хотя бы надыбал где-то второй ПК/ноут с яндексом и тоже залогинился.
А мне кажется наоборот какие-то настройки уже включены. Я например везде ставлю запреты на куки третих лиц и т.п.
То есть я бы наоборот профиль бы удалил (сохранив предварительно) и проверил на совершенно чистом конфиге.

Цитата Сообщение от КВА696 Посмотреть сообщение
Microsoft Edge - не сбрасывает, и хром тоже не выкидывает но очень смущает что на всех куки с пометкой сесионные. Хотя как я понимаю запись - o.ExpireTimeSpan = TimeSpan.FromMinutes(30); должна была непосредственно указывать дату
У сессии нет дат (таких как вы ожидаете), на то она и сессия. Дата вроде бы хранится в самом хеше.
А чтобы кука жила долго и наверняка нужно включать режим "Запомни меня" и флаг при авторизации.
Кстати да... вы не показывали как вы авторизуете (хотя видимо это не имеет смысла раз на других браузерах всё в порядке).

Цитата Сообщение от КВА696 Посмотреть сообщение
Вот конечный результат где все ненужное как я считаю удалил и все равно авторизация слетает
Я предлагал вообще всю эту ерунду убрать и оставить по умолчанию

C#
1
2
3
builder.Services
   .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
   .AddCookie();
0
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
13.08.2025, 19:24
Цитата Сообщение от HF Посмотреть сообщение
я бы наоборот профиль бы удалил (сохранив предварительно) и проверил на совершенно чистом конфиге.
Чем это отличается от "развернуть песочницу с дефолтными настройками"? Но можно и так попробовать, если лень возиться с второй системой. Или создать новую учётку винды и под ней глянуть что будет твориться.
0
HF
 Аватар для HF
1303 / 882 / 199
Регистрация: 09.09.2011
Сообщений: 2,593
Записей в блоге: 2
13.08.2025, 19:34
Цитата Сообщение от Wolfdp Посмотреть сообщение
Чем это отличается от "развернуть песочницу с дефолтными настройками"? Но можно и так попробовать, если лень возиться с второй системой. Или создать новую учётку винды и под ней глянуть что будет твориться.
Перечитал. Действительно тоже самое что ты предлагал. Ранее показалось что просто перетащить профиль в виртуалку. Пис!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.08.2025, 19:34
Помогаю со студенческими работами здесь

С какой частотой браузер чистит устаревшие куки
вопрос в вопросе :)

Не подгружаются куки в браузер клиента при JWT httponly cookie
Добрый вечер Ситуация такая.. Есть back-end приложение на ASP.Net Core Web API - т.е....

Авторизованный пользователь после закрытия браузера снова посещает сайт
Здравствуйте ! Нужна небольшая помощь для решения такой проблемы: Есть небольший проект на MVC 5...

Продолжать работу после закрытия браузера
В общем такой вопрос, допустим в Web приложении есть &quot;задачи&quot;, пользователь создаёт, запускает и...

Чат. Как при работе с одним браузером в разных вкладках сохраняются сеансы пользователей
Всем привет, http://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room, скачал на этом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru