C# 从winform c获取浏览器上的Cookie#

C# 从winform c获取浏览器上的Cookie#,c#,browser,webrequest,C#,Browser,Webrequest,我正在构建一个应用程序,在用户登录到我的网站后,该应用程序会转到一个链接以获取他的用户名,这样我就能在应用程序上认出他 现在,如果我以用户身份从浏览器登录,然后将类似内容粘贴到浏览器上,我将获得一个带有用户名的页面,但如果我从代码中执行web请求,我将获得一个空页面 我的问题是如何将url作为浏览器打开,或者如何在certin浏览器上获取cookie的值 我试过了 string s= GetHtmlPage("http://www.somedomain.com/account/show_cook

我正在构建一个应用程序,在用户登录到我的网站后,该应用程序会转到一个链接以获取他的用户名,这样我就能在应用程序上认出他

现在,如果我以用户身份从浏览器登录,然后将类似内容粘贴到浏览器上,我将获得一个带有用户名的页面,但如果我从代码中执行web请求,我将获得一个空页面

我的问题是如何将url作为浏览器打开,或者如何在certin浏览器上获取cookie的值

我试过了

string s= GetHtmlPage("http://www.somedomain.com/account/show_cookies.php","Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)");

 static string GetHtmlPage(string strURL,string browser)
        {
            String strResult;
            System.Net.WebResponse objResponse;

            System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(strURL);
            ((System.Net.HttpWebRequest)objRequest).UserAgent =browser;
            objResponse = objRequest.GetResponse();
            using (System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream()))
            {
                strResult = sr.ReadToEnd();
                sr.Close();
            }
            return strResult;
        }
但这也会返回一个空白页。

您需要使用

CookieContainer cookies=新的CookieContainer();
HttpClientHandler handler=新的HttpClientHandler();
handler.CookieContainer=cookies;
HttpClient=新的HttpClient(处理程序);
HttpResponseMessage response=client.GetAsync(“http://google.com三、结果;
Uri=新的Uri(“http://google.com");
IEnumerable responseCookies=cookies.GetCookies(uri.Cast();
foreach(响应Cookie Cookie)
Console.WriteLine(cookie.Name+“:”+cookie.Value);
Console.ReadLine();

我尝试过它,但它没有返回任何内容。你知道如何作为浏览器访问该页面吗?非常奇怪,我的一切都正常工作。试着去谷歌几次,然后运行程序。插入您的地址而不是Google地址默认cookie会随每个请求一起出现,但登录或会话cookie之类的东西不会在浏览器之间传播。这就是为什么在通过特定浏览器进行设置后,从应用程序打开特殊cookie时,它将不可用。我也想知道一种读取cookies的方法,也许是从文件系统?
CookieContainer cookies = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;

HttpClient client = new HttpClient(handler);
HttpResponseMessage response = client.GetAsync("http://google.com").Result;

Uri uri = new Uri("http://google.com");
IEnumerable<Cookie> responseCookies = cookies.GetCookies(uri).Cast<Cookie>();
foreach (Cookie cookie in responseCookies)
     Console.WriteLine(cookie.Name + ": " + cookie.Value);

Console.ReadLine();