HttpCookie-无法更新现有的Cookie ASP.NET [Google Chrome]

时间:2020-04-02 10:24:18

标签: c# asp.net google-chrome httpcookie samesite

  1. 以下代码用于将值更新为现有的cookie。
  2. 这些代码可以正常工作,但是现在我不知道为什么它会中断并且无法将最新值更新为cookie。 (Cookie继续显示第一个分配的值)。
  3. 示例流程: a)cookie中的第一个分配值是“ abc”。 b)将“ 123”作为最新值更新到cookie中。 c)读取cookie,但值仍为“ abc”。
  4. 我曾在Microsoft Edge中尝试过,其中的cookie更新按预期工作,但不知道为什么Google chrome无法更新cookie。

        string m_cookie = FormsAuthentication.FormsCookieName;
        string m_Json = string.Empty;
        HttpCookie m_httpCookie;
        FormsAuthenticationTicket m_ticket;
        m_httpCookie = System.Web.HttpContext.Current.Request.Cookies[m_cookie];
        m_ticket = FormsAuthentication.Decrypt(m_httpCookie.Value);
    
        m_Json = (JsonConvert.SerializeObject(new UserCredential1
        {
            UserName = "123",
            ExpiredAt = "123",
            AccessToken = "123",
            TokenType = "123",
        })).ToString();
    
        var newticket = new FormsAuthenticationTicket(m_ticket.Version, m_ticket.Name, 
        m_ticket.IssueDate, dtNowAdd1min, false, m_Json, m_ticket.CookiePath);
        m_httpCookie.Value = FormsAuthentication.Encrypt(newticket);
        if (newticket.IsPersistent) m_httpCookie.Expires = newticket.Expiration;
    
        System.Web.HttpContext.Current.Response.Cookies.Set(m_httpCookie);
    
        m_httpCookie = System.Web.HttpContext.Current.Request.Cookies[m_cookie];
        m_ticket = FormsAuthentication.Decrypt(m_httpCookie.Value);
        UserCredential result = JsonConvert.DeserializeObject<UserCredential>(m_ticket.UserData);
    
  5. 我怀疑是由于Google Chrome Samesite设置导致的?

  6. 有人对此有想法吗?预先感谢。

0 个答案:

没有答案