1

编辑:对不起!我忘了包括细节。我在 MVC4 项目中使用 C#。

所以我在这里有一些代码应该是 1. 如果设置了 UserID 参数并且尚未设置一个,则创建一个新的 cookie 2. 如果尚未设置 cookie 并且未指定 UserID 参数,请将 UserID 设置为1 3. 如果有新的 UserID 参数,则使用新的 UserID 更新 cookie。

问题是,如果首先将 UserID 设置为 Jake,然后设置为 Joe,然后设置为 Bob,我会得到一个类似于“Bob,Joe,Jake”的 Cookie 值。这是正常的吗?似乎最好清除此列表。在此先感谢您的时间。

public static void StoreID()
{
    if ((HttpContext.Current.Request.Cookies["UserID"] == null) && (System.Web.HttpContext.Current.Request.Params["UserID"] != null))
    {
        HttpContext.Current.Response.Cookies["UserID"].Value = System.Web.HttpContext.Current.Request.Params["UserID"];
        HttpContext.Current.Response.Cookies["UserID"].Expires = DateTime.Now.AddDays(1);
    }
    else if ((HttpContext.Current.Request.Cookies["UserID"] == null) && (System.Web.HttpContext.Current.Request.Params["UserID"] == null))
    {
        HttpContext.Current.Response.Cookies["UserID"].Value = "1";
        HttpContext.Current.Response.Cookies["UserID"].Expires = DateTime.Now.AddDays(1);
    }
    else if ((HttpContext.Current.Request.Cookies["UserID"] != null) && (System.Web.HttpContext.Current.Request.Params["UserID"] == null))
    {

    }
    else
    {
        HttpContext.Current.Response.Cookies["UserID"].Value = System.Web.HttpContext.Current.Request.Params["UserID"];
        HttpContext.Current.Response.Cookies["UserID"].Expires = DateTime.Now.AddDays(1);
    }
}
4

1 回答 1

0

好的,所以引入子键解决了这个问题。不知道为什么会这样 - 如果有人对为什么会很棒有任何意见!这是工作代码:

if ((HttpContext.Current.Request.Cookies["UserInfo"]== null) && (System.Web.HttpContext.Current.Request.Params["UserID"] != null))
{
    HttpContext.Current.Response.Cookies["UserInfo"]["UserID"] = System.Web.HttpContext.Current.Request.Params["UserID"];
}
else if ((HttpContext.Current.Request.Cookies["UserInfo"] == null) && (System.Web.HttpContext.Current.Request.Params["UserID"] == null))
{
    HttpContext.Current.Response.Cookies["UserInfo"]["UserID"] = "1";
}
else if ((HttpContext.Current.Request.Cookies["UserInfo"] != null) && (System.Web.HttpContext.Current.Request.Params["UserID"] == null))
{

}
else
{
    HttpContext.Current.Response.Cookies["UserInfo"]["UserID"] = System.Web.HttpContext.Current.Request.Params["UserID"];
}
于 2013-05-08T22:14:41.670 回答