Frage

Ich verwende WebRequest, um eine Signin -Seite zu veröffentlichen, auf der mich auf die Seite umgeleitet wird, auf die ich wirklich veröffentlichen muss.

Wie kann ich diese Seite posten, auf die ich umgeleitet wurde? Hier ist der Code:

*****NEUE SACHEN*****

Hier ist, was passiert, nachdem ich auf der Login-Seite gepostet habe: get /config/validate?.src=flickr&.pc=5134&.scrumb=6l14ni2pz3j&.pd=c%3DE0.gahop2e4mjkx.5l2hgaolkpmypvcccccccccccccpm-&.intl=s&.don=s&.don=s&.done= http%3a%2f%2fwww.flickr.com%2fSignin%2fyahoo%2f%3fredir%3d%252fpeople%252flindieb68%252Frelationship%252F

Get/signin/yahoo/? Redir =%2fpeople%2flindieb68%2Frelationship%

Get /cookie_check.gne?pass=%2Fpeople%2Flindieb68%2Frelationship%2F&fail=register_cookies.gne

Get/people/lindieb68/Beziehung/

Bei dem letzten muss ich auf eine Schaltfläche klicken. Sollte ich einfach all diese Kekse durchgehen und sammeln? Ich werde es nach dem Abendessen versuchen und Sie wissen lassen. Ich habe das Gefühl, dass dies funktionieren wird. Ich werde ein wenig aktualisieren.

        private CookieContainer LoginYahoo(CookieContainer cookies)
        {
            string appURL = "https://login.yahoo.com/config/login?.src=flickr&.pc=5134&.scrumb=0&.pd=c%3DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-&.intl=us&.done=https%3A%2F%2Flogin.yahoo.com%2Fconfig%2Fvalidate%3F.src%3Dflickr%26.pc%3D5134%26.scrumb%3D0%26.pd%3Dc%253DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-%26.intl%3Dus%26.done%3Dhttp%253A%252F%252Fwww.flickr.com%252Fsignin%252Fyahoo%252F%253Fredir%253D%25252Fpeople%25252Flindieb68%25252Frelationship%25252F&rl=1";
            string strPostData = ".tries=1&.src=flickr&.md5=&.hash=&.js=&.last=&promo=&.intl=us&.bypass=&.partner=&.u=0delt5h5l4df0&.v=0&.challenge=3DZF0DFFqdE0m.9MWnCq6LjUZ9gV&.yplus=&.emailCode=&pkg=&stepid=&.ev=&hasMsgr=1&.chkP=Y&.done=https%3A%2F%2Flogin.yahoo.com%2Fconfig%2Fvalidate%3F.src%3Dflickr%26.pc%3D5134%26.scrumb%3D0%26.pd%3Dc%253DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-%26.intl%3Dus%26.done%3Dhttp%253A%252F%252Fwww.flickr.com%252Fsignin%252Fyahoo%252F%253Fredir%253D%25252Fpeople%25252Flindieb68%25252Frelationship%25252F&.pd=flickr_ver%3D0%26c%3DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-%26ivt%3D%26sg%3D&login=loginName&passwd=Password&.persistent=y&.save=Sign+In";

            // Setup the http request.
            HttpWebRequest wrWebRequest = WebRequest.Create(appURL) as
            HttpWebRequest;
            wrWebRequest.Method = "POST";
            wrWebRequest.ContentLength = strPostData.Length;
            wrWebRequest.ContentType = "application/x-www-form-urlencoded";
            CookieContainer cookieContainer = cookies;
            wrWebRequest.CookieContainer = cookieContainer; 

            // Post to the login form.
            StreamWriter swRequestWriter = new
            StreamWriter(wrWebRequest.GetRequestStream());
            swRequestWriter.Write(strPostData);
            swRequestWriter.Close();

            // Get the response.
            HttpWebResponse hwrWebResponse = (HttpWebResponse)wrWebRequest.GetResponse();

            // Read the response
            StreamReader srResponseReader = new
            StreamReader(hwrWebResponse.GetResponseStream());
            string strResponseData = srResponseReader.ReadToEnd();
            srResponseReader.Close();

            //YOU ARE NOW LOGGED IN TO YAHOO!
            //NEED TO POST AGAIN TO WHAT hwrWebResponse RETURNS
            ShowInBrowser(strResponseData);
            return cookieContainer;
        }
War es hilfreich?

Lösung

Sammeln Sie alle Cookies aus den vorherigen (Login-) Antworten, da mindestens einer von ihnen das Cookie ist, das Yahoo mitteilt, dass Sie bereits angemeldet sind. Dann fügen Sie die Cookies mit Ihrem Beitrag zur Zielseite oder einer anderen Interaktion mit Yahoo ein .

Bearbeiten: In diesem Artikel finden Sie ein vollständiges Code-Beispiel zum Sammeln und Wiederverwenden von Cookies.
http://blogs.msdn.com/dgorti/archive/2005/08/16/452347.aspx

Andere Tipps

Setzen Sie die Eughtororedirect auf Ihre httpwebRequest -Instanz auf wahr.

Das wird kompliziert.

Die kurze Antwort scheint die Kekse zu sammeln. Aus irgendeinem Grund mache ich es jedoch nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top