Web Browser Cookie Hijack - WP7

To enter a specific part of the website, users of my application require their cookie. To do this, I need to grab it and pass it to url.

Does anyone know how to capture certain website cookies from a browser control?

I saw this method , but was not entirely clear.

Thanks TP.

+3
source share
5 answers

WP 7.1 Mango "release", , . WebBrowser Windows Phone. , , cookie WebBrowser. GetCookies (WebBrowser), : WebBrowserExtensions . , . , , .

, , , JS: URL-. , , cookie URL-. , CookieContainer, , .

7.0 " cookie" . , HTTP-, WebBrowser - - - " ", cookie . , , , . cookie - , GetCookie, , . , - , - API, , SDK. API () System.Net.Browser.WebRequestCreator, . Quirk: SDK "IWebRequestCreate ClientHttp" "", "factory" "raw http" - WebClient - . , "IWebRequestCreate BrowserHttp" , Reflection:

PropertyInfo brwhttp = typeof(System.Net.Browser.WebRequestCreator)
    .GetProperty("BrowserHttp")

"" IWebRequestCreate, WebBrowser. HTTP- , cookie , / WebBrowser, , , http, userprovide HTTP- , - WebBrowser, " ", hh, - - HTTP- ( " " ) /cookies/etc - WebBrowser . cookie/ !

cookie WebBrowser, GetCookie JS. , , authz WebBrowser - , , . , !

.. , : P

//edit: , BrowserHttp Silverlight factory, . BrowserHttp. , "miniSilverlight", WP7!

+6

, , WebBrowser control InvokeScript javascript. , , "cookie", .

 string cookie = myWebBrowser.InvokeScript("document.cookie") as string;

, , / cookie , Url. .

. document.cookie.

Edit

, , InvokeScript . , , WebBrowser, ​​, : -

 function getCookie() { return document.cookie; }

InvokeScript : -

 string cookie = myWebBrowser.InvokeScript("getCookie");
0
// Ensure this is set to true BEFORE navigating to the page
webBrowser1.IsScriptEnabled = true;

// Once the page has loaded, you can read the cookie string
string cookieString = webBrowser1.InvokeScript("eval", new string[] { "document.cookie;" }) as string;

cookieString cookie . .

0

@quetzalcoatl, WebRequestCreator WebRequest. cookie, , Microsoft.

WebReqeust, CookieContainer WebBrowser. URL- cookie . cookie.

var browser = new WebBrowser();
var brwhttp = typeof (WebRequestCreator).GetProperty("BrowserHttp");
var requestFactory = brwhttp.GetValue(browser, null) as IWebRequestCreate;
var uri = new Uri("https://www.login.com/login-handler");

var req = requestFactory.Create(uri);
req.Method = "POST";

var postParams = new Dictionary<string, string> { 
    {"username", "turtlepower"}, 
    {"password": "ZoMgPaSSw0Rd1"}
};

req.BeginGetRequestStream(aReq => {

    var webRequest = (HttpWebRequest)aReq.AsyncState;
    using (var postStream = webRequest.EndGetRequestStream(aReq)) {

        // Build your POST request here
        var postDataBuilder = new StringBuilder();
        foreach (var pair in paramsDict) {
            if (postDataBuilder.Length != 0) {
                postDataBuilder.Append("&");
            }
            postDataBuilder.AppendFormat("{0}={1}", pair.Key, HttpUtility.UrlEncode(pair.Value));
        }

        var bytes = Encoding.UTF8.GetBytes(postDataBuilder.ToString());
        postStream.Write(bytes, 0, bytes.Length);
    }

    // Receive response 
    webRequest.BeginGetResponse(aResp => {

        var webRequest2 = (HttpWebRequest) aResp.AsyncState;

        webRequest = (HttpWebRequest)aResp.AsyncState;
        string resp;

        using (var response = (HttpWebResponse)webRequest2.EndGetResponse(aResp)) {
            using (var streamResponse = response.GetResponseStream()) {
                using (var streamReader = new System.IO.StreamReader(streamResponse)) {
                    resp = streamReader.ReadToEnd();
                }
            }
        }

    }, webRequest);
}, req);

One of the problems that I could not solve was the exception when the server returned 302 - it seems to throw a WebException with a description of "Not Found".

0
source

There is a WebBrowser extension class that is specifically designed for this:

CookieCollection tempCookies = Microsoft.Phone.Controls.WebBrowserExtensions.GetCookies(this.BrowserControl);
0
source

Source: https://habr.com/ru/post/1775580/


All Articles