【问题标题】:Why are the cookies not being set when doing a Redirect?为什么在进行重定向时没有设置 cookie?
【发布时间】:2009-06-24 16:02:08
【问题描述】:

或者我做错了,为什么重定向时没有设置 cookie?

static void doLogin()
{
    var req = HttpContext.Current.Request;
    ...
    user_cookie.set(userId, loginId);
    ...
    HttpContext.Current.Response.Redirect(req["returnLocation"]);
}

static public void set(long userId, long loginId)
{
    var cookies = HttpContext.Current.Request.Cookies;
    var u = new HttpCookie("userId", userId.ToString());
    u.HttpOnly = true;
    var l = new HttpCookie("loginId", loginId.ToString());
    l.HttpOnly = true;
    cookies.Add(u);
    cookies.Add(l);
}

【问题讨论】:

  • 你要重定向到哪里?

标签: c# asp.net cookies


【解决方案1】:

您正在将 cookie 添加到 Request.Cookies 集合中,您需要将它们添加到 Response.Cookies 集合中。

还要注意 Response.Redirect 会中止当前线程,我见过这有时会导致问题。 Response.Redirect( url, false ) 将重定向而不中止。

【讨论】:

    猜你喜欢
    • 2010-12-09
    • 2020-12-05
    • 2011-10-21
    • 1970-01-01
    • 2015-08-13
    • 2012-02-21
    相关资源
    最近更新 更多