2017-04-06 10 views
0

私は、ASP.NET Core MVC(.NET Framework)アプリケーションのいずれかでクッキーを使用しています。 クライアントのブラウザセッションが有効な間にオブジェクト値を保持しようとしています。 その値を読み書きして更新したいと思います。ASP.NET Core MVC(.NET Framework)クッキーの作成、読み取り、更新

私は、System.Web.Script.Serialization名前空間のJavascriptSerializerクラスを使用し、Cookieを処理するために、Microsoft.ASPNetCore.Http名前空間のHttpResponseクラスとHttpRequestクラスを使用しています。

私はそのクッキーを読んだり、オブジェクトにデシリアライズしたり、オブジェクトをシリアル化したりして、クッキーに書き込むことができます。しかし、Response.Cookiesオブジェクトは既存のCookieを更新できないため、Cookieを更新できません。それから、Cookieを削除し、Response.Cookiesオブジェクトに追加しました。 MVC6アプリケーション内のクッキーを削除することなくクッキーを更新する方法はありますか?それは「クッキー更新」ではありません!

答えて

1

Cookieを更新することはできません。そのことについても削除することはできません。これはMVCの問題ではなく、クッキーについての事実です。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies:サーバーがクッキーに対して実行できる唯一の操作は、それを設定することです。 (おそらく、クッキーがサーバーではなくブラウザによって所有されていると考えることができます)。

  • クッキーを更新するには、新しい値で上書きします。
  • クッキーを削除するには、有効期限を昨日に設定します。

ブラウザでは、Cookieの新しい値を再度追加すると、必要な効果が得られることがわかります。ブラウザは新しい値を取得します。例えば

サーバーサイド:

HttpContext.Response.Cookies.Append("key", "value set at " + DateTime.Now.TimeOfDay); 

とクライアント側:

document.writeln(document.cookie); 
console.log("document.cookie", document.cookie); 
0

これを試してみてください:CookieManagerラッパー(https://github.com/nemi-chand/CookieManager)。

これは、asp.netコアのhttp cookieの読み書き/更新に役立ちます。それは使いやすさに流暢なAPIを持っています

関連する問題