热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

主屏幕Web应用中的iOS11Cookie到期

如何解决《主屏幕Web应用中的iOS11Cookie到期》经验,有好办法吗?

iOS 11似乎有问题(从iOS 11.0.1开始仍然是问题),主屏幕Web应用程序和COOKIE。从服务器设置COOKIE时,iOS 11似乎会间歇性删除COOKIE。其他时间,当服务器使COOKIE过期时,iOS 11似乎间歇性地无法删除COOKIE。这两种行为是在关闭并重新打开主屏幕Web应用程序之后发生的,并且在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();
        }
    }

如果有人想重现此问题,则这里是完整的回购。请记住,这是一个间歇性问题,可能需要多次尝试。


推荐阅读
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有