ASP.NET MVC - 设置cookie不能用于chrome

时间:2018-05-28 05:55:48

标签: asp.net-mvc

我正在尝试在用户登录时设置Cookie。该Cookie适用于Safari,但在Chrome上,它不会显示在存储/ Cookie部分中。

我做错了什么?

在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中启动(但无法共享)

1 个答案:

答案 0 :(得分:1)

感谢@tiesonT找到了这个问题。保存Cookie时,.local是Chrome的受限域名。该代码在staging / prod中运行良好,但对于开发,我必须更改为不同的非通用域名。

这似乎只是Chrome的问题