【问题标题】:ASP.NET MVC - setting a cookie not working in chromeASP.NET MVC - 设置 cookie 在 chrome 中不起作用
【发布时间】:2018-05-28 15:00:39
【问题描述】:

我正在尝试在我的用户登录时设置一个 cookie。该 cookie 在 Safari 上有效,但在 Chrome 上它没有显示在 Storage / Cookies 部分。

我做错了什么?

在 AccountController 我有以下内容:

    public async Task<ActionResult> Login(LoginViewModel model, string ReturnUrl)
    {

        if (!ModelState.IsValid)
        {
            return View(model);
        }

        var result = await SignInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, shouldLockout: true);
        switch (result)
        {
            case SignInStatus.Success:
                {
                    //create a cookie
                    HttpCookie myCookie = new HttpCookie("site");

                    //Add key-values in the cookie
                    myCookie.Values.Add("test", "test value");
                    myCookie.Domain = "local";
                    myCookie.Path = "/";

                    myCookie.Expires = DateTime.Now.AddYears(1);

                    Response.AppendCookie(myCookie);
                    return RedirectToLocal(ReturnUrl);
                }
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "The user name or password provided is incorrect.");

                return View(model);
        }
    }

更新 - 如果我删除域,则 cookie 开始在 Chrome 中工作(但无法共享)

【问题讨论】:

  • "local" 似乎不是一个有效的域。您是要在本地共享 cookie,还是在“实时”站点上共享 cookie?如果您尝试跨子域共享它,则需要类似“.yourdomain.tld”之类的内容 - 带有前导句点。
  • 试图在我的开发机器上本地共享它 - 一个域是 xyz.local,另一个是 abc.local
  • 顺便说一句@TiesonT。 , 不需要提前期
  • @RobbieMills 很有趣。 MDN 同意你的观点。似乎我总是需要领先时期才能在我们的网站上工作。我想,每天都能学到新东西。

标签: asp.net-mvc


【解决方案1】:

感谢@tiesonT 发现问题。 .local 是 Chrome 保存 cookie 时的受限域名。该代码在 staging/prod 中运行良好,但为了开发,我不得不更改为不同的非通用域名。

这似乎只是 Chrome 的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2014-08-27
    • 2013-07-10
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多