zoukankan      html  css  js  c++  java
  • 如何从桌面程序向浏览器传递cookie或自定义header

    类似问题

    从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

  • 相关阅读:
    View载入具体解释
    七、备忘录模式Memento(行为型模式)
    排序算法之直接插入排序
    IOS
    Matlab得到二值图像中最大连通区域
    MVC模式利用xib文件定制collectionCell
    五大算法思想—贪心算法
    jQuery鼠标悬停显示提示信息窗体
    J2EE基础总结(5)——EJB
    iOS 打开扬声器以及插入耳机的操作
  • 原文地址:https://www.cnblogs.com/fejerry/p/8534954.html
Copyright © 2011-2022 走看看