問題

私はユーザーのユーザーIDを永続化するために使用しているクッキーを持っていますが、それを新しい値に置き換えるのは苦労しています。 MSDNによると、私は単に値を上書きすることができるはずですが、それは動作していません。私はハンドラでログインロジックを行い、成功すれば新しいWebページにユーザーを渡しています。

 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));
}
 

  ベストアンサー

.Valueを追加してみてください

 context.Response.Cookies["user_id"].Value = user.ID.ToString();
 

  同じタグがついた質問を見る

c#asp.netcookieshttphandler