在ASP.NET MVC中创建Cookie

Bil*_*nes 3 c# cookies asp.net-mvc-4

这看起来应该非常简单.但是,对于我的生活,我似乎无法在ASP.NET MVC中创建一个cookie.目前,我有以下代码:

DateTime lastActivityDate = DateTime.UtcNow;
if (Request.Browser.Cookies)
{
  HttpCookie lastActivityCookie = new HttpCookie(COOKIE_LAST_ACTIVITY, lastActivityDate.ToShortDateString());
  lastActivityCookie.Expires = DateTime.Now.AddMonths(-12);                    
  this.ControllerContext.HttpContext.Response.Cookies.Add(lastActivityCookie);
}
Run Code Online (Sandbox Code Playgroud)

我设置了一个断点,注意到cookie似乎被添加了.(是的,我进入了Request.Browser.Cookies街区).然后我尝试使用以下方法检索cookie:

DateTime lastActivity = DateTime.UtcNow.AddDays(-7);        // Default to the past week

HttpCookie lastActivityCookie = Request.Cookies[COOKIE_LAST_ACTIVITY];
if (lastActivityCookie != null)
{
  DateTime temp = DateTime.UtcNow;
  if (String.IsNullOrWhiteSpace(lastActivityCookie.Value) == false)
  {
    if (DateTime.TryParse(lastActivityCookie.Value, out temp))
      lastActivity = temp;
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,lastActivityCookie永远null.此外,当我查看Chrome中的"资源"选项卡时,我会看到cookie分支,但是,我正在尝试创建的cookie未列出.但是列出了另外两个cookie,包括.ASPXAUTH cookie.我究竟做错了什么?

kra*_*ew4 5

查看HttpCookie对象的Expires属性- 更多内容在此处.我相信你将来会像在msdn网站上的例子那样设置cookie到期日期.因为您在过去设置了日期时间,所以Cookie会自动过期,您永远无法读取它.