Еще не было исправлено для iOS 11.1 B4, поэтому я не ожидаю, что это будет исправлено в финальной версии 11.1 :-(

ся, есть проблема с iOS 11 (все еще проблема с iOS 11.0.1), веб-приложениями домашнего экрана и файлами cookie. Когда cookie устанавливается с сервера, iOS 11, кажется, периодически удаляет cookie. В других случаях, когда сервер истекает cookie, iOS 11, кажется, периодически не удается удалить cookie. Эти два поведения возникают после закрытия и повторного открытия веб-приложения на домашнем экране и, по-видимому, не воспроизводимы в Safari. Эти поведения также, кажется, не присутствуют в iOS 10 или iOS 9.

Я предполагаю, что это ошибка в iOS 11, но мне было интересно, если кто-то еще сталкивался с этой проблемой и выяснил, как обойти ее.

Например, этот код ASP.NET создает и истекает cookie при входе и выходе из системы. Когда URL-адрес индекса добавляется на домашний экран, и приложение закрывается и повторно открывается (т. Е. URL-адрес индекса перезагружается) после входа или выхода из системы, приложение иногда будет отображаться в неправильном состоянии после перезагрузки (зарегистрировано). после входа в систему или все еще вошли в систему после выхода из системы).


    public class HomeController : Controller
    {        
        [Route("~/")]
        public ActionResult Index()
        {
            var loginCookie = Request.Cookies["Login"];

            if (loginCookie != null)
            {
                return View();
            }
            else
            {
                return Redirect("Login");
            }
        }

        [Route("~/login/")]
        public ActionResult Login()
        {
            return View();
        }

        [HttpPost]
        [Route("~/login/")]
        public ActionResult LoginComplete()
        {
            var authCookie = new HttpCookie("Login", "login token")
            {
                Expires = DateTime.Now.AddMinutes(20)
            };

            Response.Cookies.Add(authCookie);

            return Redirect("~/");
        }

        [Route("~/logout/")]
        public ActionResult Logout()
        {
            var authCookie = new HttpCookie("Login", "login token")
            {
                Expires = DateTime.Now.AddMinutes(-1000)              
            };

            Response.Cookies.Add(authCookie);

            return View();
        }
    }

Вот полный репо если кто-то хочет попробовать воспроизвести проблему. Имейте в виду, что это периодически возникающая проблема, и может потребоваться несколько попыток.

Ответы на вопрос(0)

Ваш ответ на вопрос