3

Web以外のバックグラウンドから来ているので、Cookieの一意性に苦労しています。CustomerCodeという名前のCookieを読み書きすると、Cookieコレクションに同じ名前の複数のCookieが見つかります。どうすればこれを回避できますか?

重複するリクエストCookie

重複する応答Cookie

データベース行は、一意性を確保するために主キーを使用します。クッキーに相当するものはありますか?この「再利用可能なCookieコンテナ」コードを使用して、Cookieへの書き込みを簡素化します。

Master.Cookies.CustomerCode = SessionWrapper.CustomerCode;

次に、SessionWrapperで、Cookieからセッション変数を復元します。

public static void InitiateSessionVariablesFromCookies(IAppCookies appCookies) {
    if (SessionWrapper.CustomerCode == null && appCookies.CustomerCode != null) {
        SessionWrapper.CustomerCode = appCookies.CustomerCode;
    }...

CookieコレクションにCustomerCodeが複数回含まれているため、間違った値がセッション変数に渡されています。私のコードをすべて見ずにこの質問に答えるのが難しい場合は、Cookieを設定する適切な/最良の方法を説明してから、それらをセッション変数に読み戻してください(または私を助けるためのリンクを含めてください)。

前もって感謝します。

4

1 に答える 1

2

有効期限が異なる場合は、「重複」を取得できます。

HttpCookie Temp = new HttpCookie("MyName", "123");
Temp.Expires = DateTime.Now.AddMinutes(5);

Response.Cookies.Add(Temp);

このコードは、同じ名前と値で実行されるたびに新しいCookieを作成します。

于 2012-06-28T15:27:28.933 に答える