たくさんのCookieを使用する非常に大きなWebサイトがあります。約あります。 14種類のCookieがあります。私はアイテムごとに異なるクッキーを持っています。ユーザーがサイトを閲覧すると、ブラウザに14個のCookieがあります。これいらない。
14個のアイテムを持つサイト用の単一のCookieが必要で、それらを追加、編集、削除できます。私は多くの方法を試しましたが、私はこれを行うことができません。
ユーザー名をCookieに保存するだけでなく、ランタイムCookieをいくつか配置する必要があります。ユーザーがログインした後、個人用サイトのアドレスを保存します。最終的には、ユーザー名と個人サイトのアドレスの両方が必要です。ユーザーの名前を保存する前と、ユーザーが自分の個人用サイトにアクセスしたときに、個人用サイト名のランタイムを保存します。
誰も私がこれを行う方法を知っていますか?
マシューは私にそれをbeatりましたが、はい、 ASP.NET Cookies Overview ...を参照してください.
複数のキー/値を持つ単一のCookieを読み書きするには、次のようになります。
HttpCookie cookie = new HttpCookie("mybigcookie");
cookie.Values.Add("name", name);
cookie.Values.Add("address", address);
//get the values out
string name = Request.Cookies["mybigcookie"]["name"];
string address = Request.Cookies["mybigcookie"]["address"];
ASP.NET Cookies Overview には、単一のCookieに複数の名前と値のペア(サブキーと呼ばれる)を実装する方法を説明するセクションがあります。これがあなたの言っていることだと思います。
そのページのC#の例:
Response.Cookies["userInfo"]["userName"] = "patrick"; //userInfo is the cookie, userName is the subkey
Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString(); //now lastVisit is the subkey
Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);
HttpCookie aCookie = new HttpCookie("userInfo");
aCookie.Values["userName"] = "patrick";
aCookie.Values["lastVisit"] = DateTime.Now.ToString();
aCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(aCookie);
編集:Cookies Overviewから(強調を追加):
Cookieの変更と削除:Cookieを直接変更することはできません。代わりに、Cookieを変更するには、新しい値を使用して新しいCookieを作成し、そのCookieをブラウザに送信して、クライアント上の古いバージョンを上書きします。
Cookieの変更と削除:Cookieを直接変更することはできません。代わりに、Cookieを変更するには、新しい値を使用して新しいCookieを作成し、そのCookieをブラウザに送信して、クライアント上の古いバージョンを上書きします。