asp.net mvc cookies没有被发回

时间:2010-04-16 03:03:26

标签: asp.net asp.net-mvc cookies missing-cookies

我在mysubdomain.mydomain.com的应用程序需要设置一个包含一些用户会话信息的cookie。

他们以https页面登录。我们对它们进行身份验证并在cookie中设置一些会话信息。

我们在一个包含控制器上下文的辅助库中执行此操作

contextBase.Response.Cookies[CookiePayload.CookieName].Value = encryptedTicket;                       
contextBase.Response.Cookies[CookiePayload.CookieName].Expires = cookieExpires;
contextBase.Response.Cookies[CookiePayload.CookieName].Domain= ConfigHelper.CookieDomain;
contextBase.Response.Cookies[CookiePayload.CookieName].HttpOnly=true;

我们在控制器中进行快速重定向(到非https页面):

this.ControllerContext.HttpContext.Response.Redirect(redirectTo, false);
return null;

cookie出现在响应中(根据firebug的网络标签)。

但是fireforx既不会在后续获取中发送cookie。

我们正在将cookie域设置为mydomain.com,即使该站点是mysubdomain.mydomain.com。跳过重定向命令无效,也不会更改cookie值。

我很困惑。感谢您的任何建议。

1 个答案:

答案 0 :(得分:4)

如果需要通过http发送此Cookie,请尝试明确将Secure标记设置为false:

var cookie = new HttpCookie(CookiePayload.CookieName, encryptedTicket)
{
    HttpOnly = true,
    Domain = ConfigHelper.CookieDomain,
    Secure = false,
    Expires = cookieExpires
};
Response.SetCookie(cookie);