1

永続的な Cookie を作成しようとしています。コードは次のとおりです。

string expires = string.Format("{0} GMT", DateTime.Now.AddHours(1).ToString("ddd, dd-MMM-yyyy HH:mm:ss"));
string newCookie = string.Format("Cookie1=ValueToStore; expires={0}", expires);

Uri location = new Uri("http://www.mysite.com/Application");

System.Windows.Application.SetCookie(location, newCookie);
string theSetCookie = System.Windows.Application.GetCookie(location);

文字列theSetCookieには Cookie 内のすべてのデータが含まれているはずですよね? ただし、含まれているのはCookie1=ValueToStore;. 私は何が欠けていますか?有効期限を取得して永続的な Cookie にしなかったのはなぜですか?

注: Windows 7 で Internet Explorer 9 を使用しています。

4

1 に答える 1

2

有効期限のタイムスタンプは Cookie 値の一部ではありません。Cookie を設定するときは、特定のパラメーター (有効期限) と共に設定しますが、それを読み取るときは、値を読み取るだけです。

Cookie の有効期限は、アプリケーションでロジックを駆動するべきではありません。

  • 一定の時間が経過したために有効でなくなった場合は、有効期限に反映する必要があります
  • Cookie の有効期限を長くする必要がある場合は、既存の有効期限を知らなくても設定できます。
  • 有効期限を削除する (セッション Cookie を作成する) 場合は、有効期限を設定せずに再度設定できます

これらのシナリオのいずれも、有効期限のタイムスタンプを知る必要はありません。

于 2012-05-30T10:35:40.527 に答える