【问题标题】:How to save session in mvc3 on blocked cookies如何在 mvc3 中将会话保存在被阻止的 cookie 上
【发布时间】:2012-05-31 18:29:51
【问题描述】:

在我的 mvc3 应用程序中,我将每个用户的数据保存到会话中。

HttpContext.Current.Session["UserName"] = "Jon";

问题出在 Safari 浏览器中。 默认设置为:“阻止来自第三方和广告商的 cookie”。所以会话没有保存。我找到了解决方案:

var ticket = new FormsAuthenticationTicket(
                1,
                "currentUser",
                DateTime.Now,
                DateTime.Now.AddMinutes(30),
                false,
                null);

                string encryptedTicket = FormsAuthentication.Encrypt(ticket);
                var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);

                this.Response.Cookies.Add(cookie);

但此解决方案仅适用于本地主机,不适用于服务器... 有没有人有这个问题的替代解决方案?或者可以解释为什么我的解决方案不能在服务器上运行?

【问题讨论】:

    标签: asp.net asp.net-mvc-3


    【解决方案1】:

    尝试将 cookie 的 Domain 属性设置为与您的工作服务器所在的域的名称完全匹配,如下所示:

    var cookie = new HttpCookie(...
    cookie.Domain = "Microsoft.com";
    

    一旦你这样做了,你的 cookie 就是第一方 cookie(而不是第三方的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-25
      • 2012-05-29
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2015-09-13
      • 2021-04-20
      相关资源
      最近更新 更多