C# &引用$&引用;作为cookies名称前缀的美元字符

C# &引用$&引用;作为cookies名称前缀的美元字符,c#,cookies,C#,Cookies,我有这个函数来检索CookieContainer中的响应cookies(this.cookies) 但是,当我在Fiddler中调试请求时,我得到以下结果: 为什么cookies中有“$”呢 根据 公共Cookie(字符串名称、字符串值、字符串路径、字符串 域) 名称 类型:System.String 曲奇的名字。名称内不得使用以下字符:等号、分号、逗号、换行符(\n)、返回符(\r), 制表符(\t)和空格字符。美元符号字符(“$”)不能使用 成为第一个角色 如何删除此字符?您看到的$不是c

我有这个函数来检索CookieContainer中的响应cookies(this.cookies)

但是,当我在Fiddler中调试请求时,我得到以下结果:

为什么cookies中有“$”呢

根据

公共Cookie(字符串名称、字符串值、字符串路径、字符串 域)

名称 类型:System.String 曲奇的名字。名称内不得使用以下字符:等号、分号、逗号、换行符(\n)、返回符(\r), 制表符(\t)和空格字符。美元符号字符(“$”)不能使用 成为第一个角色

如何删除此字符?

您看到的$不是cookie的名称;它是与cookie关联的属性


处理HTTP状态管理;第4.4节专门讨论美元符号前缀。希望有帮助……

东西坏了吗?您有问题吗?我想将$Domain替换为Domain,因此,如果您更改收到的Cookie,您是否能够基于这些Cookie正确创建新请求?
…新Cookie(c.Name.Skip(1),…
?但这不是cookie编码方式的一部分吗?如果代码中没有美元符号而得到实际值,那有什么问题吗?RFC-2109在2000年被淘汰,到2011年又被淘汰。正如人们所知:最新的RFC没有提到的属性,所以使用这些美元前缀属性s已经过时近十年了。
private void getCookies(string url)
{

  // request
  HttpWebRequest request = CreateWebRequestObject(url);
  request.CookieContainer = this.cookies;

  request.Headers.Add("Accept-Encoding", "gzip, deflate");
  request.Headers.Add("Accept-Language", " es-MX,es;q=0.8,en-us;q=0.5,en;q=0.3");
  request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";



  request.Method = "GET";
  request.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2";

  // response
  using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
  {
    foreach (Cookie c in response.Cookies)
    {
      this.cookies.Add(new Cookie(c.Name, c.Value, c.Path, c.Domain));


    }
  }
}