これはかなり簡単なはずです。しかし、私の一生の間、ASP.NETMVCで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);
}
ブレークポイントを設定しましたが、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;
}
}
残念ながら、lastActivityCookie
常にnull
です。さらに、Chromeの[リソース]タブを見ると、Cookieブランチが表示されますが、作成しようとしているCookieがリストされていません。ただし、.ASPXAUTH Cookieを含め、他に2つのCookieがリストされています。私は何が間違っているのですか?