Некоторые устройства iPhone / iPad теряют свои cookie-файлы для входа в систему, если приложение или вкладка закрываются сразу после входа в систему.
Что я нашел в своем исследовании и безуспешно решил:
Возможно, Safari отключил файлы cookie по умолчанию ( Файл cookie не работает в MAC-Safari и IOS Mobile- Safari )
- Проверено, и файлы cookie включены
Кто-то упомянул запятые и точки с запятой в значении cookie, не работают в Safari ( Файл cookie не работает в MAC -Safari и IOS Mobile- Safari )( Странная проблема с файлами cookie в Safari и Asp.net )
- Код выполняет FormsAuthentication.Encrypt () для преобразования всего в символы верхнего регистра
String hash = FormsAuthentication.Encrypt(ticket);
- Выключил FormsCookiePath при создании билета FormsAuthenticationTease, если в пути были недопустимые символы на iOS и Android
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
user.MemberNumber.ToString(),
DateTime.UtcNow,
DateTime.UtcNow.AddDays(numOfDays),
true,
string.Empty);
//FormsAuthentication.FormsCookiePath);
AppPool может сбрасывать ключ шифрования ( Обеспечение постоянного входа пользователя в систему с членством ASP .Net )
- Проверено, что machineKey обновлялся
Возможно, Safari установлен в приватном режиме для просмотра ( Файлы cookie не сохраняются между сеансами браузера на iOS Safari )
- Проверено, что Safari работаетне в приватном режиме
web.config может потребоваться явно установить cookie для использования cookie с аутентификацией форм (http://www.bloggersworld.com/index.php/asp-net-forms-authentication-iphone-cookies/)
- Добавленоcookieless = "UseCookies" до
Safari не может установить cookie при перенаправлении на Мой аккаунт ( Safari не сохраняет cookie-файлы, но Chrome )
- Добавлен заголовок к объекту Response для пользователей сафари (поначалу это работало для iPad, но больше нет)
if (HttpContext.Current.Request.Browser.Type.ToLower().Contains("safari"))
{
HttpContext.Current.Response.AddHeader("Set-Cookie", CookieName + "=" + cookie + "; path=/; domain=" + HttpContext.Current.Request.Url.Host + ";");
}
Используйте Web Inspector на MacBook, чтобы убедиться, что файлы cookie сброшены на iPhone
- Все отлично работает на iPhone, когда он подключен к MacBook, но ломается, когда он отключен.
- На самом деле, при удалении cookie во время подключения, Web Inspector в Safari на MacBook показывает, что cookie был удален, но когда я отключаюсь и пытаюсь получить доступ к сайту на отключенном iPhone, он все равно показывает, что я вошел в систему.Повторно подключите iPhone к MacBook, и исходный файл cookie все еще там.
iOS11, кажется, гораздо более заблокирован с точки зрения того, какие куки он принимает.( Сохранение файлов cookie в iOS Safari / Chrome )
- Добавлен домен для создания файлов cookie
ДругиеНеприменимые проблемы
- Safari не получает куки при использовании IFRAME
- Safari не читает сторонние куки
Источник: Safari. Сторонний трюк iframe с файлами cookie больше не работает?
Я не уверен, почему файлы cookie не сохраняются, пока кто-то не перемещается по сайту, но его легко тиражировать таким образом:
- Перейти на сайт
- Войти (логин перенаправляет пользователя на страницу «Моя учетная запись»)
- Закрыть приложение
- Возвратв приложение (вкладка уже находится на странице «Моя учетная запись», которая перенаправляет пользователя на вход в систему, поскольку браузер не находит cookie и считает, что пользователь не вошел в систему.