Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 05:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[vb.net] ask.fm login

Discussion on [vb.net] ask.fm login within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2008
Posts: 31
Received Thanks: 2
[vb.net] ask.fm login

Nabend mitteinand,
ich möchte gerne ein paar Werte von ask.fm/account/stream lesen, allerdings scheitert es schon beim Login.
Vorgehen:
- Seite anfordern und authentication_token auslesen
- Logindaten an den Server senden
- ...

Das Problem, denke ich, liegt an den unvollständigen Cookies beim Senden der Logindaten. z.B. _ask.fm_session Cookie?

Danke (:

Hier Code dazu(was sind die richtigen [vb.net]-code Tags?):
PHP Code:
Public Sub login(user As Stringpw As String)
        
//Get response for authentication token
        
Dim tempcookie As New CookieContainer
        Dim request 
As WebRequest _
        WebRequest
.Create("http://ask.fm/")
        
request.Credentials CredentialCache.DefaultCredentials
        Dim response 
As HttpWebResponse DirectCast(request.GetResponse(), HttpWebResponse)
        
//expect _ask.fm_session cookie here, but there is non cookie returned at all
        
tempcookie.Add(response.Cookies)
        
Dim dataStream As Stream response.GetResponseStream()
        
Dim reader As New StreamReader(dataStream)
        
Dim responseFromServer As String reader.ReadToEnd()
        
Dim starttag As String "authenticity_token"" type=""hidden"" value="""
        
Dim endtag As String "="" />"
        
Dim t_token As String
        Dim user_list 
As New List(Of String)
        
Dim postdata As String
        
//Clean up the streams and the response.
        
reader.Close()
        
response.Close()
        
//Get token stream data
        
t_token responseFromServer.Substring(responseFromServer.IndexOf(starttag) + starttag.Length)
        
auth_token t_token.Substring(0t_token.IndexOf(endtag))

        
//prepare cont for login
        
Dim encoding As New UTF8Encoding
        postdata 
"authenticity_token=" auth_token _
        
"%3D&login=" user _
        
"&password=" pw _
        
"&follow=&like=&back=&authenticity_token=" auth_token _
        
"%3D"
        
Dim bytes() = encoding.GetBytes(postdata)
        
Dim ask_request As HttpWebRequest DirectCast(WebRequest.Create("http://ask.fm/session"), HttpWebRequest)
        
ask_request.Method "POST"
        
ask_request.KeepAlive True
        ask_request
.CookieContainer tempcookie

        
//Set request values
        
ask_request.Accept "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01"
        
ask_request.ContentLength bytes.Length
        ask_request
.ContentType "application/x-www-form-urlencoded; charset=UTF-8"
        
ask_request.Referer "http://ask.fm/"
        
ask_request.UserAgent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"
        
ask_request.Host "ask.fm"
        
ask_request.Headers.Add("Accept-Language""de,en-US;q=0.7,en;q=0.3")
        
ask_request.Headers.Add("X-Requested-With""XMLHttpRequest")
        
//ask_request.Headers.Add("Cookie", "language_id=14; __qca=P0-375437971-1420825693756; inbox_notice=0; rbox_type=2; rbox_toggle=1; mobile_view=false; _ask.fm_session=BAh7CToOcmV0dXJuX3RvIhQvYWNjb3VudC9zdHJlYW06D3Nlc3Npb25faWQiJTcwNDMwN2dWM3ZGIxNfNTM0ZTYd5NzJmNfdE1OhBfY3NyZl90b2tlbiIxL1FdsdfdONG01sdTXFxdFNYYytdsxvdHZCVG5Cdk5ZZGMrbUNYM2ZSND06EG9sZF9nZXRfdXJsIgYv--15031f3050681ed6c4533545a56dce9a94fa092e")

        
Dim ask_request_stream As Stream ask_request.GetRequestStream()
        
ask_request_stream.Write(bytes0bytes.Length)
        
ask_request_stream.Close()

        
Dim ask_response As HttpWebResponse DirectCast(ask_request.GetResponse(), HttpWebResponse)
        
//The cookies given are different to those usually given when login was successful
        
tempcookie.Add(ask_response.Cookies)
        
logincookie tempcookie
        Dim ask_response_reader 
As New StreamReader(ask_response.GetResponseStream())
        
Dim ask_response_string As String ask_response_reader.ReadToEnd()
        
ask_response_reader.Close()
        
ask_request_stream.Close()
        
ask_response.Close()
    
End Sub 
3x3cuTeR is offline  
Old 01/16/2015, 14:47   #2
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Liegts vielleicht daran das du "reader.Close()" und "response.close()" zu früh benutzt?
Ludder231 is offline  
Old 01/16/2015, 17:26   #3
 
elite*gold: 0
Join Date: Apr 2008
Posts: 31
Received Thanks: 2
Ist das nicht durch das
Code:
.ReadToEnd()
sichergestellt?

Habs auch mit
Code:
Threading.Thread.Sleep(1000)
gestestet Ergebnis ist das gleiche.

Das ist der Header der gesendet wird wenn ich mich regulär auf der Seite einlogge.
HTML Code:
Accept	text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01
Accept-Encoding	gzip, deflate
Accept-Language	de,en-US;q=0.7,en;q=0.3
Content-Length	193
Content-Type	application/x-www-form-urlencoded; charset=UTF-8
Cookie	        language_id=14; __qca=P0-375437971-1420825693756; inbox_notice=0; rbox_type=2; rbox_toggle=2; mobile_view=false; _ask.fm_session=BAh7CDoPc2Vzc2lvbl9pZCIlYmI5ZGJmOTNhODEzNmVjYzg1MTMzYTFjMDhkNTFmNmI6EG9sZF9nZXRfdXJsIsdsdfsdfsdfY3NyZl90b2tlbiIxOHAzMko3TWZnWDg3dmZBYjEwNElSK0x0NVZUYTZ2bWRIRHFoRWgrVUJxUT0%3D--292f0e2108d3ea89bf9ae5b702073495a68e06ac
Host	        ask.fm
Referer	http://ask.fm/
User-Agent	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
X-Requested-With	XMLHttpRequest
Hier wird der Cookie "_ask.fm_session" mitgesendet, wo kann ich das auslesen?
3x3cuTeR is offline  
Old 01/16/2015, 19:17   #4


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by 3x3cuTeR View Post
Hier wird der Cookie "_ask.fm_session" mitgesendet, wo kann ich das auslesen?
Darum musst du dich nicht kümmern, setze einen GET Request auf die Hauptseite mit verbundenem CookieContainer ab und logge dich danach über den POST Request (mit dem selben CookieContainer) ein.

Ich denke eher, dass diese ominöse Cookie nur gesetzt wird, wenn du dich erfolgreich eingeloggt hast aber das ist nun nur Spekulation. In der Regel werden gesetzte Cookies im Set-Cookie Header angegeben, du müsstest halt mal alle relevanten Anfragen (und dazu gehören nicht nur die Header) posten damit man eine vernünftige Debugbasis hat.

PS: Wo hast du dir den Code zusammenkopiert? Das tut ja schon in den Augen weh...
PPS: Zensier die Session ID, du weißt anscheinend nicht dass diese jedem den Zugriff auf diesen Account gewähren kann.
Mostey is offline  
Old 01/16/2015, 19:43   #5
 
elite*gold: 0
Join Date: Apr 2008
Posts: 31
Received Thanks: 2
@PPS: Versuch es.. :P

Ok dann einfach mal Step by Step.
Der Code von oden etwas zusammengefasst:

Cookiecontainer erstellen:
Code:
Dim tempcookie As New CookieContainer
Get request auf die Hauptseite:
Code:
Dim response As HttpWebResponse = DirectCast(WebRequest.Create("http://ask.fm/").GetResponse(), HttpWebResponse)
Antwort erhalten:
Code:
Dim response As HttpWebResponse = DirectCast(WebRequest.Create("http://ask.fm/").GetResponse(), HttpWebResponse)
Cookies des response speichern(es werden keine Cookies zurückgeliefert):
Code:
tempcookie.Add(response.Cookies)
Inhalt des response speichern:
Code:
Dim reader As New StreamReader(response.GetResponseStream())
Dim responseFromServer As String = reader.ReadToEnd()
Der Webinhalt der Ask Startseite ist jetzt nicht so interessant. Außer eben die Zeile/n mit dem Token.

Code:
var AUTH_TOKEN = "Kp9iqVHxJMtsd5nyMfp+jDs7IFUsaqhSasaYDIDr+UMo=
Soweit noch richtig oder?

EDIT:
Was mich auch schon ein ganzes Stück weiterbringen würde:
Wie kann ich das auslesen, was ich tatsächlich mit dem Code sende?
3x3cuTeR is offline  
Old 01/16/2015, 22:55   #6


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Du musst da keine Cookies hin und her schieben. Wenn der Server Cookies setzt, sind sie automatisch im CookieContainer, das macht .NET selbst.

Deine letzte Frage verstehe ich nicht, meinst du Packet Sniffer und Debugger? Ich würde dir so etwas wie Fiddler empfehlen, der fungiert als Proxy und bekommt alle Anfragen die du sendest (sowie die Antworten darauf). Dort siehst du auch genau, ob der Server deine Anfrage ablehnt oder wie er eben generell darauf reagiert.
Mostey is offline  
Thanks
1 User
Old 01/17/2015, 03:12   #7
 
elite*gold: 0
Join Date: Apr 2008
Posts: 31
Received Thanks: 2
Ich hab sowas wie Fiddler gemeint. Bisher hab ich immer nur Firebug genutzt, allerdings seh ich da keine Anfragen und Antworten die von Code kommen.

EDIT: Fiddler ist top danke.

Eine Kleinigkeit noch, dann sollte ich erst mal selbst klarkommen.

Code:
response.Cookies
Hat beim Lesen:
HTML Code:
Count=1
Item(0)={mobile_view=false}
Wenn ich mir alleindings den Header anschaue, dann stehe da noch ein bisschen mehr.

Code:
response.Headers.Item(8)
HTML Code:
"mobile_view=false; path=/,,language_id=14; path=/; expires=Sun, 17-Jan-2016 13:13:12 GMT,,l=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT,_ask.fm_session=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyz; path=/; HttpOnly"
Gibts ne Möglichkeit direkt auf die Daten zuzugreifen oder muss ich den Header parsen?
3x3cuTeR is offline  
Old 01/17/2015, 14:58   #8


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Habe nichts dazu gefunden. Hätte mich auch etwas gewundert, da hier keine wirkliche Struktur vorliegt. Du hast ja nicht immer Werte nach Key-Value Prinzip und die Delimiter wechseln auch ständig.

Hau einfach ein entsprechendes RegEx pattern rein, dann wirst du die Informationen schnell und geordnet extrahieren können.
Mostey is offline  
Reply

Tags
ask.fm


Similar Threads Similar Threads
Warrock Pvp Server Complete Succesfully Game Login But Login Map Error :S
02/22/2011 - WarRock - 7 Replies
Hi friends succesfully warrock pvp server and game login ıd pw succesfully server list WREMU Create room friedns came friends ready game start do not be eniting please help :(
Hot ice Down oder login Server down!!Wenn ja sagt wolfi bescheid dass login down ist
01/01/2010 - Metin2 Private Server - 1 Replies
hallo kann jmnd bescheid sagen bitte



All times are GMT +1. The time now is 05:31.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.