【问题标题】:Cookie is not working in MAC -Safari & IOS Mobile- SafariCookie 在 MAC -Safari 和 IOS Mobile-Safari 中不起作用
【发布时间】:2017-09-03 02:29:04
【问题描述】:

我正在创建一个模型,序列化和分配到 cookie 并将其传递到下一页。 我可以在除

之外的所有浏览器的下一页中获取 cookie 值
  • MAC -Yoshemite - Safari
  • IOS - IPHONE 6 Mobile - Safari

    我是否需要更新以下代码才能在 Safari 中工作。

    string CookieName= "dsResponse";
    string json = new JavaScriptSerializer().Serialize(model);    
    
    if (HttpContext.Current.Request.Cookies[CookieName] != null)
    {
        HttpContext.Current.Response.Cookies[CookieName].Expires = DateTime.Now.AddDays(-1);
    }
    HttpContext.Current.Response.SetCookie(new HttpCookie(CookieName)
    {
        Value = json,
        HttpOnly = false,
        Expires = DateTime.Now.AddSeconds(Convert.ToInt32(ConfigurationManager.AppSettings["cookiesecond"]))
    });
    

【问题讨论】:

  • 您尝试在 cookie 中保存的字符串有多长? Cookie 保存数据的空间有限。
  • 但在其他浏览器中也能正常工作
  • 你的 cookie 有多大? Safari 尤其需要使用超薄 cookie - 每个域 4093B 是一个限制;见stackoverflow.com/questions/640938/…
  • 这是第 3 方 cookie 吗?这些在 Safari 中默认被阻止

标签: c# cookies safari


【解决方案1】:

默认情况下,iOS Safari 浏览器不允许使用 cookie。我们必须从 iOS Safari 浏览器启用 cookie 设置,

解决方案:- -我们实现了本地存储(java脚本概念)来解决iOS safari浏览器中的cookie问题。

【讨论】:

    【解决方案2】:

    JSON 数据中有一些逗号,在反序列化数据时会中断。

    var cookieValue = (json).Replace(";", "").Replace(",", "***");
     if (HttpContext.Current.Request.Browser.Type.ToLower().Contains("safari"))
                {
                    HttpContext.Current.Response.AddHeader("Set-Cookie", sessionName + "=" + cookieValue + "; path=/;");
                }
    

    【讨论】:

      【解决方案3】:

      第一个:您正在覆盖 cookie - 没有使用此代码使其过期。 响应对象发送一次 - 使用您的“新”cookie。 如果 cookie 存在 - 只需更改其值和/或内容。 我会检查您对 AppSettings["cookiesecond"]

      的假设

      也试试这个:

      If Request.ServerVariables("http_user_agent").IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) <> -1 Then
          Me.Page.ClientTarget = "uplevel"
      

      可能是浏览器大小写不匹配...

      【讨论】:

        猜你喜欢
        • 2018-11-18
        • 2015-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-28
        • 2017-05-25
        • 2012-07-24
        • 1970-01-01
        相关资源
        最近更新 更多