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();
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人想重现此问题,则这里是完整的回购。请记住,这是一个间歇性问题,可能需要多次尝试。
| 归档时间: |
|
| 查看次数: |
1439 次 |
| 最近记录: |