Caducidad de cookies de iOS 11 en aplicaciones web de pantalla de inicio

Parece que hay un problema con iOS 11 (sigue siendo un problema a partir de iOS 11.0.1), las aplicaciones web de la pantalla de inicio y las cookies. Cuando se configura una cookie desde el servidor, iOS 11 parece eliminar la cookie de forma intermitente. Otras veces, cuando el servidor expira una cookie, iOS 11 parece fallar intermitentemente al eliminar la cookie. Estos dos comportamientos ocurren después de cerrar y volver a abrir la aplicación web de la pantalla de inicio y no parecen ser reproducibles en Safari. Estos comportamientos tampoco parecen estar presentes en iOS 10 o iOS 9.

Supongo que se trata de un error en iOS 11, pero me preguntaba si alguien más ha pasado por este problema y ha descubierto cómo solucionarlo.

Por ejemplo, este código ASP.NET crea y caduca una cookie al iniciar y cerrar sesión. Cuando la URL de índice se agrega a la pantalla de inicio, y la aplicación se cierra y se vuelve a abrir (es decir, la URL de índice se vuelve a cargar) después de iniciar sesión o cerrar sesión, la aplicación a veces se mostrará en un estado incorrecto al volver a cargar (registrada cerrar sesión después de iniciar sesión, o aún conectado después de cerrar sesión).


    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();
        }
    }

Aquí está el repositorio completo si alguien quiere intentar reproducir el problema. Tenga en cuenta que se trata de un problema intermitente y que pueden ser necesarios varios intentos.

Respuestas a la pregunta(0)

Su respuesta a la pregunta