none
使用System.Windows.Application.GetCookie读取本地cookie的错误 RRS feed

  • 问题

  • 如下语句
     Uri uri_cookie = new Uri(@"C:\Documents and Settings\Administrator\Cookies\administrator@login.live[1].txt");
     string mycookie = System.Windows.Application.GetCookie(uri_cookie);
    调试的时候,显示uri_cookie是"file:///C:/Documents and Settings/Administrator/Cookies/administrator@login.live[1].txt”,这串字符如果在我的电脑的地址栏里面输入后回车,直接打开了login.live[1].txt这个文件,但是语句执行到第二句时报错,Win32Exception,没有可用数据。那就是说找不到文件了。
    这是怎么回事啊?文件明明存在,windows也能找到,但是用System.Windows.Application.GetCookie读cookie就找不到。
    • 已移动 桂素伟Moderator 2009年12月18日 15:15 (发件人:微软 .NET 俱乐部(INETA))
    2009年9月24日 1:36

答案

  • 我想你要是写死一个 "http://.../.../Administrator/Cookies/administrator@login.live[1].txt" 进去应该也是正确的.
    你可以试一下将 "file:///C://......./administrator@login.live[1].txt" 转成 "http://..." 来访问.

    可以用Uri.MakeRelativeUri()方法来转成你网站位置与administrator@login.live[1].txt的相对路径, 然后new Uri() 生成一个新的Uri "http://..."
    暂时我也没有更好的办法.

    • 已标记为答案 c_t0427 2010年3月22日 3:01
    2009年9月25日 4:11

全部回复

  • http://msdn.microsoft.com/zh-cn/library/aa358519(VS.85).aspx

    这个链接是 msdn 里关于System.Windows.Application.GetCookie()用法的Sample.你可以看看.
    2009年9月24日 3:26
  • 感谢JanYu。你已经回答了我的好多问题。
    我是想直接读取存在本机的txt文件,就是C:\Documents and Settings\Administrator\Cookies\下的这些txt文件。但是按照我写的代码,会报告无数据可用。
    看别人的例子的uri都是http://...这样的,网络资源应该时候行的,但是本地的file://...就有错,不知道问题在哪里。

    2009年9月24日 9:37
  • 你试过"http://.../.../Administrator/Cookies/administrator@login.live[1].txt"吗 ?
    2009年9月25日 2:29
  • 没有试过相对路径,调试的时候,我把uri_cookie的当前值取出来,然后直接填到windows的地址栏去访问,可用打开一个notepad,显示的内容正确。
    2009年9月25日 3:41
  • 我想你要是写死一个 "http://.../.../Administrator/Cookies/administrator@login.live[1].txt" 进去应该也是正确的.
    你可以试一下将 "file:///C://......./administrator@login.live[1].txt" 转成 "http://..." 来访问.

    可以用Uri.MakeRelativeUri()方法来转成你网站位置与administrator@login.live[1].txt的相对路径, 然后new Uri() 生成一个新的Uri "http://..."
    暂时我也没有更好的办法.

    • 已标记为答案 c_t0427 2010年3月22日 3:01
    2009年9月25日 4:11