我正在尝试在用户登录时设置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中启动(但无法共享)
答案 0 :(得分:1)
感谢@tiesonT找到了这个问题。保存Cookie时,.local是Chrome的受限域名。该代码在staging / prod中运行良好,但对于开发,我必须更改为不同的非通用域名。
这似乎只是Chrome的问题