|
You last visited: Today at 00:01
Advertisement
[VB.Net] ALLE Cookies aus Httpwebresponse auslesen
Discussion on [VB.Net] ALLE Cookies aus Httpwebresponse auslesen within the .NET Languages forum part of the Coders Den category.
12/07/2013, 11:31
|
#1
|
elite*gold: 2049
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
|
[VB.Net] ALLE Cookies aus Httpwebresponse auslesen
Hey,
leider hat alles googlen nichts geholfen, deshalb habe ich mich nun entschlossen, hier zu fragen.
Und zwar will ich alle Cookies aus einer Httpwebresponse anzeigen lassen, das mache ich mit folgendem Code:
Quote:
Public Function CookieContainerToString(ByVal cc As System.Net.CookieContainer) As String
Dim sb As New System.Text.StringBuilder()
sb.AppendLine("=============== List CookieContainer ===============")
If cc Is Nothing Then
sb.AppendLine("Container is Nothing")
Else
' get internal URL HashTable
Dim urlHashTable As Hashtable = DirectCast(cc.[GetType]().InvokeMember("m_domainTable", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.GetField Or System.Reflection.BindingFlags.Instance, Nothing, cc, New Object() {}), Hashtable)
' show count
sb.AppendLine("Total Entries: " & urlHashTable.Count.ToString)
sb.AppendLine(" --------------- ")
' list URL entries
For Each tableEntry As DictionaryEntry In urlHashTable
sb.AppendLine(String.Format("URL: {0}", tableEntry.Key.ToString))
' get internal pathList for url
Dim pathList As SortedList = DirectCast(tableEntry.Value.[GetType]().InvokeMember("m_list", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.GetField Or System.Reflection.BindingFlags.Instance, Nothing, tableEntry.Value, New Object() {}), SortedList)
' list pathlist
For Each listEntry As DictionaryEntry In pathList
' list Cookies
For Each Cookie In listEntry.Value
sb.AppendLine(String.Format("PATH: ""{0}"" Cookie: ""{1}""", listEntry.Key, Cookie))
Next Cookie
sb.AppendLine("")
Next listEntry
sb.AppendLine(" --------------- ")
Next tableEntry
' end of list
End If
sb.AppendLine("=============== End of List =================")
Return sb.ToString
End Function
|
Die Funktion rufe ich direkt nach dem Aufrufen der Seite auf.
Allerdings werden mir nur folgende Cookies angezeigt:
Obwohl Charles noch weitere Cookies trackt:
Kann mir jemand sagen, wieso nicht alle angezeigt werden?
Würde mich über jede Hilfe freuen!
|
|
|
12/07/2013, 14:42
|
#2
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
afaik gibts beim cookiecontainer eine .count o.ä. methode, lass dir das doch einfach mit ausgeben, dann siehste wieviele cookies drin sind.
desweiteren solltest du lieber den webrequest via wireshark o.ä. sniffen und dort die cookies gegenprüfen und nicht was der browser macht, es könnte ja auch sein das im browser die cookies schon älter sind oder via js/etc gesetzt wurden
|
|
|
12/07/2013, 15:11
|
#3
|
elite*gold: 2049
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
|
Quote:
Originally Posted by tolio
afaik gibts beim cookiecontainer eine .count o.ä. methode, lass dir das doch einfach mit ausgeben, dann siehste wieviele cookies drin sind.
desweiteren solltest du lieber den webrequest via wireshark o.ä. sniffen und dort die cookies gegenprüfen und nicht was der browser macht, es könnte ja auch sein das im browser die cookies schon älter sind oder via js/etc gesetzt wurden
|
Nein, du verstehst etwas falsch.
Die Response, die ich in Charles getrackt habe, war die Response vom Bot.
Das Cookie unten wird aber nicht im Bot angezeigt, wenn ich mir die ausgeben lasse. Liegt das vlt. daran, dass das Cookie keiner Domain zugeordnet wurde?
|
|
|
12/07/2013, 15:22
|
#4
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
hm kA also das funktioniert bei mir
Code:
Dim cookies As CookieContainer = New CookieContainer
Dim target As Uri = New Uri("http://www.google.de")
Dim req As HttpWebRequest = WebRequest.Create(target)
req.CookieContainer = cookies
Dim resp As HttpWebResponse = req.GetResponse()
Dim col As CookieCollection = cookies.GetCookies(target)
MsgBox(cookies.Count & vbCrLf & col.Count) 'Gleiche anzahl'
For Each cookie As System.Net.Cookie In col
MsgBox(cookie.Name & vbCrLf & cookie.Value)
Next
|
|
|
12/07/2013, 18:52
|
#5
|
elite*gold: 2049
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
|
Nein, es wird nur mobile_view angezeigt, obwohl Charles bei der Response noch die ask.fm_session_ anzeigt.
Ich nehme mal schwer an, dass es daran liegt, dass das Cookie ask.fm_session_ keine Domain hat, deshalb wird nur mobile_view vom Bot ausgegeben.
Kennt jmd eine Methode, Cookies, die keiner Domain zugeordnet sind, auszulesen?
|
|
|
12/07/2013, 20:07
|
#6
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
versuchs mit ner leeren uri, oder parse den webresponse selber, ich glaube das ging auch irgendwie
|
|
|
12/07/2013, 20:22
|
#7
|
elite*gold: 2049
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
|
Quote:
Originally Posted by tolio
versuchs mit ner leeren uri, oder parse den webresponse selber, ich glaube das ging auch irgendwie
|
Leere URL = Error
Das mit der Response hatte ich auch schonmal, finde aber den Code nichtmehr.
|
|
|
12/07/2013, 21:19
|
#8
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
das hab ich grad noch gefunden vllt kann man damit irgendwie alle cookies rausbekommen, kA

sonst vllt schauen ob man die cookiecontainer klasse entsprechend erweitern oder überschreiben kann das sie macht was man will
|
|
|
12/08/2013, 10:28
|
#9
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
1. Autoredirects ausmachen, die können dafür Sorgen das Cookies nicht sauber genommen werden. Weiß gerade garnicht ob Bug oder Designentscheidung um ehrlich zu sein.
2. Im Zweifelsfall iterier die Header durch und machs per Hand, dann erwischt auf jedenfall alles was mit HTTP gesetzt wird.
|
|
|
12/08/2013, 11:16
|
#10
|
elite*gold: 2049
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
|
Quote:
Originally Posted by dready
1. Autoredirects ausmachen, die können dafür Sorgen das Cookies nicht sauber genommen werden. Weiß gerade garnicht ob Bug oder Designentscheidung um ehrlich zu sein.
2. Im Zweifelsfall iterier die Header durch und machs per Hand, dann erwischt auf jedenfall alles was mit HTTP gesetzt wird.
|
Wie meinst du "die header iterieren"?
Quote:
Originally Posted by tolio
das hab ich grad noch gefunden vllt kann man damit irgendwie alle cookies rausbekommen, kA

sonst vllt schauen ob man die cookiecontainer klasse entsprechend erweitern oder überschreiben kann das sie macht was man will
|
Danke dir, werde ich gleich mal testen.
|
|
|
12/08/2013, 19:39
|
#11
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
var x = httpWebResponse.Headers;
Danach müsstest in X ne HeaderCollection haben , habs leider nicht 100% im Kopf und kann gerad hier nich nachsehn.
Ein Cookie Setzen ist im Prinzip nen stink normaler Header der Set-Cookie heißt.
Die Antwort durchgehen, nach Set-Cookie schauen und du bekommst jedes Cookie das der Server setzen lassen will um es z.b. wie hier ggf. per Hand in dein Cookiecontainer einzutragen.
|
|
|
12/08/2013, 20:08
|
#12
|
elite*gold: 2049
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
|
Danke, hoffe das wird funktionieren.
Edit: Habe es nun so geregelt:
Quote:
Dim headers As WebHeaderCollection
headers = response.Headers
For Each header In headers
If header.ToString.Contains("Set-Cookie") Then
MsgBox(response.GetResponseHeader(header))
End If
Next
|
Edit2: Die Schleife & Die Collection ist überflüssig, einfach MsgBox(response.GetResponseHeader("Set-Cookie")) tuts auch
Tausend Dank für den Tipp.
MfG,
maxasoft
|
|
|
12/08/2013, 20:14
|
#13
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
@maxsoft, möglich aber weis nicht wie er da reagiert wenn irgendwer so ganz nich standartmässig einfach Set-Cookie mehrmals sendet.
Ist zwar afaik nicht normgerecht, glaub aber es gelegentlich schon gesehn zu haben.
|
|
|
12/08/2013, 21:22
|
#14
|
elite*gold: 2049
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
|
Wie meinst du mehrmals senden?
|
|
|
 |
Similar Threads
|
[R] Alle Questfunktionen eines Cores auslesen
03/01/2013 - Metin2 PServer Guides & Strategies - 25 Replies
So, da manche sich die Mühe machen, extra mit IDA über den Core zu gehen, um nach versteckten Questfunktionen zu suchen (haha :D) , hier mal eine Alternative:
Fügt das hier in eure questlib.lua ein. Entscheidend ist, wo ihr sie positioniert:
- eine Positionierumg am Kopf der Datei bewirkt, dass ihr alle Funktionen, die von der Game kommen, auflistet
- eine Positionierung am Fuß der Datei bewirkt, dass ihr alle Funktionen der Game, die in der questlib definierten Funktionen und eventuelle...
|
[C#] HttpWebResponse Problem
08/05/2011 - .NET Languages - 6 Replies
Hallo liebe Epvpers!
Ich versuche mich nun schon seit geraumer Zeit mit meinem Programm auf Minecraft einzuloggen.
Hier mein Code:
ASCIIEncoding encode4 = new ASCIIEncoding();
string postdata4 = "username=USER&password=PASS&use_secu re=false";
byte data4 = encode4.GetBytes(postdata4);
HttpWebRequest request4 = (HttpWebRequest)HttpWebRequest.Create("https: //www.minecraft.net/login.jsp");
request4.Method = "POST";
|
All times are GMT +1. The time now is 00:02.
|
|