在HttpHandler中修改Cookie的值

Kyl*_*ten 7 c# asp.net cookies httphandler

我有一个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);
}
Run Code Online (Sandbox Code Playgroud)

我第一次登录它运行良好,但如果我尝试通过使用新的用户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));
}
Run Code Online (Sandbox Code Playgroud)

car*_*son 6

尝试添加 .Value

context.Response.Cookies["user_id"].Value = user.ID.ToString();
Run Code Online (Sandbox Code Playgroud)