类似问题

从c#程序启动ie并传递cookie
打开默认浏览器并传递cookie
打开一个web浏览器使用c#应用程序并添加请求头

猜想

从wpf程序打开默认浏览器并定位到一个url ,并且向这个url发起请求时传递一个cookie 。 今天碰到这个需求 ,当时就怀疑这样的可行性 ,
于是收集资料研究之 。

调查

首先看到一个说法: cookie是写到磁盘上某个地方的文件 ,不同浏览器的存储位置不同 。那么上面的问题就变成了:
1.从wpf程序写cookie到默认浏览器存储cookie的位置 ;
2.打开默认浏览器并定位到一个url(这个时候浏览器应该已经读取并传递了这个cookie)。

程序把cookie写入到浏览器存储cookie的位置这个可行吗 ,每个浏览器的cookie标准都不一样 ,这个应该不可行(愿意研究的研究看看)。

微软提供了ie 的写入方法
DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName,
string lbszCookieName, string lpszCookieData);

这个方法只适用 ie 和 微软的webbrowser控件 ,

其他浏览器就不知道提供类似功能没。

传递cookie不行 ,我就想传递请求头可行性 , 查到目前启动默认浏览器的方式有这两种,第二种严格意义上不是,它是一个控件
Process.Start("iexplorer.exe", "www.msn.ca") or webBrowser1.Navigate("www.msn.ca", true).

第二种有重载可以传递请求头 :

this.webBrowser1.ScriptErrorsSuppressed = true;
this.webBrowser1.Navigate("http://stackoverflow.com",
null,
new byte[]{},
"Myheader: ABC;");

最终结论 ,

如果使用ie 是可以实现的 , 如果是默认浏览器,那就比较困难,需要别家浏览器提供操作cookie的方法或者权限。
替代解决方案:通过querystring 传递参数 或者 header

资料:

https://www.codeproject.com/Questions/1004099/How-to-set-cookie-from-console-app-and-open-url-in
https://stackoverflow.com/questions/976907/sending-cookies-from-c-sharp-application-to-an-internet-explorer-pop-up-window
https://social.msdn.microsoft.com/Forums/vstudio/en-US/78b40b9d-acb1-497d-b13f-753cd53fe27e/opening-the-default-web-browser-by-setting-a-cookie-value?forum=csharpgeneral
https://stackoverflow.com/questions/32308254/open-a-web-browser-using-c-sharp-win-application-and-add-request-headers-in-the

如何从桌面程序向浏览器传递cookie或自定义header的更多相关文章

  1. jquery + node 通过 CORS 实现跨域访问,支持cookie和自定义header

    跨域有多种方式,现在的情况看来还是CORS更适合一些,有很多优点,比如浏览器正式支持.支持post.可以控制跨域访问的网站等. 我们来看看node如何实现cors方式的跨域.在网上找到了一些代码,考过 ...

  2. dropwizard使用cors支持跨域浏览器取不到自定义header问题

    dropwizard支持cors的配置如下: public void run(Configuration conf, Environment environment) { // Enable CORS ...

  3. Atitit.使用引擎加脚本架构的设计 使用php,js来开发桌面程序。。

    Atitit.使用引擎加脚本架构的设计 使用php,js来开发桌面程序.. 1. 引擎加脚本架构 跨平台,桌面与web的优势1 2. 架构桌面引擎(java,c#)2 3. php桌面引擎要点2 3. ...

  4. 关于PHP中浏览器禁止Cookie后,Session能使用吗?

    sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制是一种 ...

  5. 使用curl传递cookie错误的问题

    工作中发现一个问题, 通过curl调用接口传递cookie操作用户的数据, 接口的程序解析不了cookie中的数据. 经过排查发现curl发送的cookie数据为 TZ+Gn+rEk+6G4d 而接口 ...

  6. 用node-webkit(NW.js)创建桌面程序

    以往写windows桌面程序需要用MFC.C#之类的技术,那么如果你只会web开发技术呢?或者说你有一个网站,但是你想把你的网站打包成一个桌面应用程序,该如何做呢? 答案就是用node-webkit这 ...

  7. 突破短板,传统桌面程序 使用webapi 扩展迎合web和移动端融合的需求

    传统桌面程序不能完全被web和移动端替代,但是需要改造.这里要说的是巧用webapi把以前用dll和com组件,ocx等方式做接口,做分布式开发的方式,改成restful 风格api的方式实现跨平台, ...

  8. 删除浏览器浏览器删除cookie方法

    上班之余抽点时光出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下删除浏览器 文章目录导航 适用范围及演示工具 什么是cookie? cookie有什么作用? ie6/ie7/ie8 ...

  9. 网页程序 vs 桌面程序

    网页程序 vs 桌面程序 阅读:  评论:  作者:Rybby  日期:  来源:rybby.com 所谓的网页程序就是指以网页作为程序的操作界面,通过脚本语言“javascript”或其它客户端语言 ...

随机推荐

  1. java之Date(日期)、Date格式化、Calendar(日历)

    参考http://how2j.cn/k/date/date-date/346.html Date(日期) Date类 注意:是java.util.Date; 而非 java.sql.Date,此类是给 ...

  2. DeleteDC ReleaseDC DeleteObject之间的区别

    DeleteDC 该函数删除指定的设备上下文环境(DC). 原型: BOOL DeleteDC(HDC hdc): 参数: hdc:设备上下文环境的句柄. 返回值: 成功,返回非零值:失败,返回零.调 ...

  3. FZU - 2218 Simple String Problem(状压dp)

    Simple String Problem Recently, you have found your interest in string theory. Here is an interestin ...

  4. EditText 设置可以输入的字符,过滤不符合接口要求的数据的方法

    1.设置EditText的android:digits 属性, 这种方式可以指出要支持的字符.比如要限制只能输入数字和字母,可以这样android:digits="1234567890ABC ...

  5. CentOS6下用yum升级系统最新内核版本

    首先当你决定升级内核时,要想清楚为什么升级内核,因为升级内核会带来很多麻烦.所以这种事情能避免就避免 导入 Public Key rpm --import https://www.elrepo.org ...

  6. python + requests实现的接口自动化框架详细教程

    前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...

  7. LOL数值分析

    http://blog.sina.com.cn/s/blog_704133cb01018hud.html 为了从理论层面提高自己打<英雄联盟>的水平,再加上自己也有这方面的兴趣,所以我最近 ...

  8. 洛谷P2680 运输计划(树上差分+二分)

    传送门 考虑树上乱搞 首先这是满足二分性质的,如果在某个时间可以完成工作那么比他更长的时间肯定也能完成工作 然后考虑二分,设当前答案为$mid$,如果有一条链的长度大于$mid$,那么这条链上必须得删 ...

  9. 9.Python初窥门径(函数初识)

    Python(函数初识) 一.初识函数 面向过程缺点 : 代码重复,代码描述性不高 函数 : 函数是以功能为导向,一个函数封装一个功能. 函数的优点 : 减少代码重复性,增强了代码的可读性 二.函数的 ...

  10. Mac下IDEA不能进行编辑

    在安装Idea时,在选择插件的时候,把IDEAVim这个玩意儿选上了. 所以,编辑模式就跟命令行里面的Vim一样.输入时,需要先输入i, 进入insert模式下,然后才可以编辑. 彻底解决办法就是进入 ...