所以我在这里有一些代码 1.如果已设置UserID参数且尚未设置其中一个,则创建一个新cookie 2.如果尚未设置cookie且未指定UserID参数,请将UserID设置为1 3.如果有新的UserID参数,则使用新的UserID更新cookie。
问题在于,如果首先将UserID设置为Jake,然后设置为Joe,然后设置为Bob,则会获得看起来像这样的Cookie值" Bob,Joe,Jake"。这是正常的吗?似乎最好清除此列表。提前感谢您的时间。
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);
}
}
答案 0 :(得分: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"];
}