苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 16830|回复: 9

[毕业生提问] C# Winform 读取IE下特定Cookie的值

[复制链接]
发表于 2014-9-18 09:49:36 | 显示全部楼层 |阅读模式
5金钱
这是个关于Cookie读写的一个问题。

ASP.NET下读取或者设置Cookie相对比较容易;Winform下如何获取某一Cookie的值呢?比如登录百度首页后会生成名为:
Cookie:administrator@baidu.com/ 的Cookie,通过Winfrom如何读取其值?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-9-18 09:55:39 | 显示全部楼层
你登录是怎么实现的,Cookie存在什么地方,如果是使用Webbroser登录的或者是Httphelper可以自己获取。

如果是使用浏览器直接登录,想通过Winfrom调用浏览器的Cookie,其实这从安全角度是不被允许的,这属于注入或者是攻击了。

浏览器是绝对的禁止的。但是实际上是可以通过
WinApi获取到的,这个你可以具体参考一下浏览器方面的Api
回复

使用道具 举报

 楼主| 发表于 2014-9-18 12:20:28 | 显示全部楼层
站长苏飞 发表于 2014-9-18 09:55
你登录是怎么实现的,Cookie存在什么地方,如果是使用Webbroser登录的或者是Httphelper可以自己获取。

...

我创建的是普通的Winfrom项目,没有调用WebBrowser等控件,没有使用WebRequest、WebResponse等类,目前已经实现通过Window API获取Cookie列表,无差别全部删除Cookie,清空浏览器缓存等操作,但是针对单个Cookie的删除和读取目前没有实现,难点也就在这里。
回复

使用道具 举报

发表于 2014-9-18 12:35:03 | 显示全部楼层
sznszbd 发表于 2014-9-18 12:20
我创建的是普通的Winfrom项目,没有调用WebBrowser等控件,没有使用WebRequest、WebResponse等类,目前已 ...

能获取整个列表,就可以获取其中一个吧,有列表在列表中查询就行了。就是取单个 也要看域名的,不同域名下是可以存储相同的名称的
回复

使用道具 举报

 楼主| 发表于 2014-9-18 12:59:40 | 显示全部楼层
站长苏飞 发表于 2014-9-18 12:35
能获取整个列表,就可以获取其中一个吧,有列表在列表中查询就行了。就是取单个 也要看域名的,不同域名 ...

目前全都是通过API函数实现的操作。没办法获取到单个的Cookie,我还将继续研究。同样非常感谢。
回复

使用道具 举报

发表于 2014-9-19 11:01:25 | 显示全部楼层
sznszbd 发表于 2014-9-18 12:20
我创建的是普通的Winfrom项目,没有调用WebBrowser等控件,没有使用WebRequest、WebResponse等类,目前已 ...

求, 清空浏览器Cookie缓存的api代码,谢谢
回复

使用道具 举报

 楼主| 发表于 2014-9-19 16:25:04 | 显示全部楼层
zhangpan0912 发表于 2014-9-19 11:01
求, 清空浏览器Cookie缓存的api代码,谢谢

[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

public class DeleteIECache
{
    [DllImport("shell32.dll")]
    public extern static IntPtr ShellExecute(IntPtr hwnd,
                                             string lpOperation,
                                             string lpFile,
                                             string lpParameters,
                                             string lpDirectory,
                                             int nShowCmd
                                            );

    //删除IE临时文件
    public static void DeleteTemporaryInternetFiles(IntPtr hander)
    {
        ShellExecute(hander, "open", "rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 8", null, (int)DeleteIECache.ShowWindowCommands.SW_SHOW);
    }

    //删除IE Cookies
    public static void DeleteAllIECookies(IntPtr hander)
    {
        ShellExecute(hander, "open", "rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 2", null, (int)DeleteIECache.ShowWindowCommands.SW_SHOW);
    }

    //删除IE 历史记录
    public static void DeleteHistory(IntPtr hander)
    {
        ShellExecute(hander, "open", "rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 1", null, (int)DeleteIECache.ShowWindowCommands.SW_SHOW);
    }

    //删除IE 表单数据
    public static void DeleteFormData(IntPtr hander)
    {
        ShellExecute(hander, "open", "rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 16", null, (int)DeleteIECache.ShowWindowCommands.SW_SHOW);
    }

    //删除IE 所有密码 
    public static void DeletePasswords(IntPtr hander)
    {
        ShellExecute(hander, "open", "rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 32", null, (int)DeleteIECache.ShowWindowCommands.SW_SHOW);
    }

    //删除IE 所有数据 
    public static void DeleteAll(IntPtr hander)
    {
        ShellExecute(hander, "open", "rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess  255", null, (int)DeleteIECache.ShowWindowCommands.SW_SHOW);
    }

    public enum ShowWindowCommands : int
    {

        SW_HIDE = 0,
        SW_SHOWNORMAL = 1,
        SW_NORMAL = 1,
        SW_SHOWMINIMIZED = 2,
        SW_SHOWMAXIMIZED = 3,
        SW_MAXIMIZE = 3,
        SW_SHOWNOACTIVATE = 4,
        SW_SHOW = 5,
        SW_MINIMIZE = 6,
        SW_SHOWMINNOACTIVE = 7,
        SW_SHOWNA = 8,
        SW_RESTORE = 9,
        SW_SHOWDEFAULT = 10,
        SW_MAX = 10
    }
}
回复

使用道具 举报

发表于 2015-1-16 22:34:33 | 显示全部楼层
受教了学习中……
回复

使用道具 举报

发表于 2015-3-12 14:47:39 | 显示全部楼层
你的问题解决了么?我也遇到同样的问题不知道怎样解决,如果你解决了,能否告知一下我,QQ514315707
回复

使用道具 举报

发表于 2015-3-12 14:49:01 | 显示全部楼层
你的问题解决没?我也遇到同样的问题,如果你解决了能否告知一下我你的方法?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2025-1-10 11:32

© 2014-2021

快速回复 返回顶部 返回列表