标签: httpcookiecollection

HttpCookieCollection.Add vs HttpCookieCollection.Set - Request.Cookies集合是否被复制到Response.Cookies集合?

我只是想澄清一下.

我知道,如果我在之前的请求中设置了cookie,它将显示在我的Request.Cookies收藏中.

我想更新现有的Cookie.

我的Request.Cookies收藏中的cookie是否已复制到我的Response.Cookies收藏中?我是否需要使用相同的密钥添加新的cookie Response.Cookies.Add(),或者我是否需要使用Response.Cookies.Set()

asp.net httpresponse httprequest httpcookie httpcookiecollection

23
推荐指数
1
解决办法
1万
查看次数

反序列化json序列化的CookieCollection

在我的代码中,我必须将Json序列化一个CookieCollection对象并将其作为字符串传递,为实现这一点我喜欢这样:

var json = Newtonsoft.Json.JsonConvert.SerializeObject(resp.Cookies);
Run Code Online (Sandbox Code Playgroud)

导致以下json

[
 {
  "Comment": "",
  "CommentUri": null,
  "HttpOnly": false,
  "Discard": false,
  "Domain": "www.site.com",
  "Expired": true,
  "Expires": "1970-01-01T03:30:01+03:30",
  "Name": "version",
  "Path": "/",
  "Port": "",
  "Secure": false,
  "TimeStamp": "2015-06-01T12:19:46.3293119+04:30",
  "Value": "deleted",
  "Version": 0
 },
 {
  "Comment": "",
  "CommentUri": null,
  "HttpOnly": false,
  "Discard": false,
  "Domain": ".site.com",
  "Expired": false,
  "Expires": "2015-07-31T12:19:48+04:30",
  "Name": "ADS_7",
  "Path": "/",
  "Port": "",
  "Secure": false,
  "TimeStamp": "2015-06-01T12:19:46.3449217+04:30",
  "Value": "0",
  "Version": 0
 }
]
Run Code Online (Sandbox Code Playgroud)

为了反序列化这个json我想做这样的事情:

var cookies = Newtonsoft.Json.JsonConvert.DeserializeObject<CookieCollection>(json);
Run Code Online (Sandbox Code Playgroud)

但它失败并提出JsonSerializationException

无法创建和填充列表类型System.Net.CookieCollection.路径'',第1行,第1位.

所以我将我的代码更改为以下内容并立即开始工作

var tmpcookies …
Run Code Online (Sandbox Code Playgroud)

c# serialization json.net httpcookiecollection json-deserialization

8
推荐指数
1
解决办法
2045
查看次数

为什么HttpCookieCollection.Get在从手动实例化的对象(而不是当前的HttpContext)调用时返回null

HttpCookieCollection.Get MSDN文档中,声明:

如果指定的cookie不存在,则此方法将创建具有该名称的新cookie.

这是真的,在调用时HttpContext.Request.CookiesHttpContext.Response.Cookies从"真正的"Web服务器运行良好.

但是,这段代码:

    HttpCookieCollection foo = new HttpCookieCollection();
    HttpCookie cookie = foo.Get("foo");
    Console.WriteLine(cookie != null);
Run Code Online (Sandbox Code Playgroud)

显示False(cookie为空).

如果HttpCookieCollectionRequest.CookiesHTTP处理程序中检索,则不是这种情况.

知道这里有什么问题/是否需要任何其他设置?

我问这个是因为我在模拟HttpContextBase的地方编写单元测试,因此没有提供"真实"的上下文.

谢谢您的帮助

c# system.web httpcookiecollection

7
推荐指数
1
解决办法
3034
查看次数