首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >webresponse cookies

webresponse cookies
EN

Stack Overflow用户
提问于 2011-05-27 02:21:17
回答 1查看 6.7K关注 0票数 1

使用WebRequestWebResponse,我能够将登录信息发布到外部站点,并在Response.Cookies和我的CookieContainer中接收cookie。我知道这是有效的,因为在相同的过程中,我可以请求不同的页面,而不是被重定向到登录页面。这个cookie让我可以留在网站上,而不需要登录到每个页面查看。

我现在正在尝试使用Response.Cookies.Add(httpCookie)将cookie添加到客户端浏览器;

但是,它只会一直持续到过程结束。重新加载页面,cookie将不再可用。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-27 15:25:22

您从外部站点的WebResponse接收的cookies不能传递到您自己的客户端浏览器。这是因为cookie模型固有的安全限制:浏览器不支持将一个域集为另一个域的cookie。

这看起来在当前请求结束之前一直有效,因为您只是从刚刚添加了cookie的HttpCookieCollection中读取数据。此集合将持续到当前HTTP请求结束。

但是,老实说,我不确定您是如何做到这一点的,因为System.Net.HttpWebResponseCookieContainer使用System.Net.Cookie,而Response.Cookies集合使用System.Web.HttpCookie

无论如何,这里最好的办法可能是将您在WebResponse中获得的cookie的值存储到您自己发送到浏览器的cookie中。然后,在将来的请求中,读取您自己的cookie,为外部站点构造一个新的Cookie,并手动将其添加到CookieContainer中。

下面是一些伪代码,假设外部站点正在查找的cookie名为"sessionKey“,我们使用"myCookie”作为发送到客户端浏览器的cookie的名称:

代码语言:javascript
运行
复制
public ActionResult MyAction()
{
    var container = new CookieContainer();

    if (Request.Cookies["myCookie"] != null)
    {
         // browser has passed in "myCookie".
         // use this to create the "sessionKey" cookie to send.
         var cookie = new System.Net.Cookie("sessionKey",
             Request.Cookies["myCookie"].Value, "/", "external-site.com");

         container.Add(cookie);
    }

    HttpWebRequest request;
    HttpWebResponse response;

    // initialize the request.
    // ...

    // make sure we're using our cookie container.
    request.CookieContainer = container;

    // execute the request and get the response.
    response = request.GetResponse();

    // send a cookie, "myCookie", to the browser.
    // it will contain the value of the "sessionKey" cookie.
    Response.Cookies["myCookie"].Value = response.Cookies["sessionKey"].Value;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6143263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档