因为程序有新旧版本,有旧的asp页面,也有。net的页面旧版ASP页面设置的cookie 
  Response.Cookies("QEDATA")("RegistrarID")= "Hello"为什么用C#取不到啊?
  Request.Cookies["QEDATA"]["RegistrarID"].ToString();语法有错吗?多谢!

解决方案 »

  1.   

    asp和.net 的cookie和 session是不能互相访问的。换个思路吧
      

  2.   

    我用过这样的:Request.Cookies["AdminName"].Value.ToString()你的两这种写法我没有试过,你可以试一下Request.Cookies["QEDATA"]["RegistrarID"].Value.ToString();按道理来说同一个站点的Cookies是应该可以访问到的。
      

  3.   

    cookie可以互访问,看看cookie 中的path是不是不是根目录
      

  4.   

    https://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/HowtoShareSessionStateBetweenClassicASPandASP.NET.mspx?mfr=true
      

  5.   

    Cookie当然是可以访问到的, 都是写在客户机器上的,
      

  6.   

    可以访问的!如果都在同一path,
    用Request.Cookies["AdminName"].Value.ToString()
      

  7.   

    可以取到了,但我发现新的问题:Cookie中,如果从ASP送到C#, Cookie 不支持下划线的Key以及Key的值, 例如ASP中:
          Response.Cookies("QE_DATA")("Registrar_ID")= "Hello_World"     上面的下划线键值就没法取到。修改
        Response.Cookies("QEDATA")("RegistrarID")= "Hello_World"
        可以取到值了, 但
        这时,键名没有下划线,但值有下滑线, 但是值在C#中变成 "Hello%5World"
        下滑线在值中不认了。不知道那位高手给点建议。
      

  8.   

    没遇到过这样的问题.也许是写入COOKIE时编码不一样吧.不过既然找到了问题症结所在,替换就是了