3

来自非网络背景,我正在为 cookie 的独特性而苦苦挣扎。当我读取和写入一个名为 CustomerCode 的 cookie 时,我在我的 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

If you have different expiration date/times you can get "duplicates".

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

Response.Cookies.Add(Temp);

This code will create a new cookie each time it runs with the same name and value.

于 2012-06-28T15:27:28.933 回答