【发布时间】:2011-06-10 00:10:35
【问题描述】:
我有一个 cookie,我用它来保存用户的用户 ID,但我很难用新值替换它。根据 MSDN,我应该能够简单地覆盖该值,但它一直没有工作。我正在处理程序中执行登录逻辑,如果成功,则将用户传递到新网页。
public void ProcessRequest(HttpContext context)
{
User user = User.FindByUsernameAndPassword(
context.Request.Form["username"],
context.Request.Form["password"]);
context.Response.Cookies["user_id"].Value = user.ID.ToString();
context.Response.Redirect("/profile", true);
}
我第一次登录时效果很好,但是如果我尝试通过使用新用户 ID 访问处理程序来覆盖我当前的 cookie,它不会更改 cookie 值并且我继续以用户身份登录我打它的时候就是。
其他页面使用 cookie 登录,但由于用户 ID 未更改,因此不会更改登录用户。
public User User { get; set; }
public override void Page_Load()
{
this.User = User.Find(int.Parse(Request.Cookies["user_id"].Value));
}
【问题讨论】:
标签: c# asp.net cookies httphandler