我在 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 的 net 选项卡)。
但无论是 fireforx 还是 ie 在后续获取时都不会发送 cookie。
我们将 cookie 域设置为 mydomain.com,即使该站点是 mysubdomain.mydomain.com。跳过重定向命令无效,更改 cookie 值也无效。
我很困惑。感谢您的任何建议。