Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Login till websida via C#-applikation

Postades av 2009-05-21 20:22:08 - Martin Eriksson, i forum c# (c-sharp), Tråden har 19 Kommentarer och lästs av 5651 personer

Hej!

Jag vill logga in till mitt konto på Avanza via min C#-applikation. Websidan som loginformuläret finns på är en .jsp-sida.

Hittade detta på nätet men får det inte att fungera: http://geekswithblogs.net/rakker/archive/2006/04/21/76044.aspx

Har någon något förslag på hur man skall göra?


PS. Jag tänker INTE ge er inloggingsuppgifterna :D

Mvh


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-21 23:13:10 - Oskar Johansson

Förslag på lösning: Rätta felet :)

(Om du vill ha mer detaljerat förslag så föreslår jag att du lämnar en mer detaljerad felbeskrivning, inkluderande ev. felmeddelanden, kod som strular, vad som händer/inte händer etc :) )


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-22 13:35:37 - Martin Eriksson

Som man frågar får man svar ;)

Nja, koden funkar så till vida att den returnerar en sida, men en sida som säger att jag fortfarande inte är inloggad.

Alltså kommer jag tillbaka till inloggningssidan som säger "för att se denna sidan måste du vara inloggad".

Mvh


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-22 13:59:40 - Oskar Johansson

Kan du visa lite exempelkod (med inloggningsuppgifterna borttagna, såklart)?

(I ditt fall misstänker jag att du nog kanske missar att skicka med en del fält till servern? Tittar man i htmlkoden för avanzas inloggningssida så ser man att det t.ex. skickas med lite hidden-fält. Sedan kan det vara så att man t.ex. måste "skicka med" submitknappen.


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-23 21:56:32 - Martin Eriksson

Nedan ser du rutinen som kör frågan. Innan dess har jag slagit ihop parametrarna i postdata, typ username=XX&password=YY. Har även provat att lägga med de dolda parametrarna (och knappen), service=M&msgId=-1

Det som är skumt är att sidan som returneras är loginsidan, men den har accepterat användarnamn och lösen verkar det som, för om man i en browser anger fel uppgifter kommer loginsidan upp fast med tillägget om "fel anv.namn eller lösen".

Såg någonstans att det skulle vara ett tillägg i koden om det rörde sig om https (du ser det i mitten av koden), men jag vet inte om det är aktuelt i dagens version av .NET.

Kan det vara något cookieproblem?

private string PostData(string url, string postData)
{
//request.ContentLength = postData.Length;
HttpWebRequest request = null;
Uri uri = new Uri(url);
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

UTF8Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes(postData);

// Set contentlength to the number of bytes to send.
// NOTE: postData.Length and bytes.Length are not necessarily equal since
// some characters are represented by several bytes in UTF8.
request.ContentLength = bytes.Length;

//Om det är https ???
//System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();

//request.CookieContainer = new CookieContainer();

request.AllowAutoRedirect = true;
using (Stream writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, 0, bytes.Length);
}

string result = string.Empty;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
{
result = readStream.ReadToEnd();
}
}
}
return result;
}


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-24 11:59:42 - Oskar Johansson

Funderar också på om det kan vara något problem med cookies?

Raden med request.CookieContainer = new CookieContainer(); borde du nog inte kommentera bort. Testa dessutom att sätta request.AllowAutoRedirect = false; så ser du vad som händer. En gissning är att du loggas in, skickas vidare med redirect, cookies blir fel, nästa sidan anser dig utloggad, och du skickas tillbaka till inloggningssidan..?

Det där med certificatepolicy tror jag mest har att göra med om servern har certifikat som inte är "godkända" av någon anledningen, och man "manuellt" måste godkänna dem. Så det kan du nog strunta i.

Skulle vara intressant att se hela harangen du skicka med som post-data inkl. url (men stryk inloggningsuppgifterna i strängen)


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-25 09:46:24 - Martin Eriksson

Tack för tipsen!!

Jag lade in koden med cookies.
Testade med att sätta AllowAutoRedirect till false - och du är på rätt spår - mycket riktigt gav det en annan respons, "The URL has moved here". "Here" är en länk till depåsammanfattningen, och ställer jag en ny fråga med cookiesarna som jag fått i förra frågan och "länken" ("https://www.avanza.se/aza/login/login.jsp?from=535&msgId=16\") , så kommer jag tillbaka till inloggningssidan, där det står att jag måste vara inloggad.

Sparade Avanzas inloggningssida lokalt och ändrade målet till en liten test.asp-sida som jag gjorde för att testa och skriva ut alla Request.Form-variablerna och dess värde, och fick då fram att parametersträngen skulle se ut så här:
"username=XX&password=YY&service=M&msgId=-1&redirect="

Har även lagt till:

request.UserAgent = "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

i koden, men ingen skillnad.

Kan det vara något med: AuthenticationLevel eller PreAuthenticate?


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-25 09:57:52 - Oskar Johansson

Postar du till https vid inloggningen också? (Skriver från mobil :) )


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-25 10:09:22 - Martin Eriksson

Alltid på alerten ser jag!!! :)

ja, jag postar till https vid första anropet.

Om jag postar till http så får jag respons att den flyttat till https med samma harang. Jag lade till null på slutet av min harang också, eftersom det stod i slutet på den responsen jag nämnde ovan.


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-25 11:02:03 - Oskar Johansson

Testa att installera fiddler, är en liten debugger för http i form at en proxy. Installera den, och ställ in så den även kör proxy på https med self-signed certifikat. Gå in på avanza, du får då en varning om osäkert certifikat, installera då det. Starta sedan om webbläsaren, och gör en komplett inloggning på avanza. Kör sedan programmet en gång. I fiddler kan du sedan kolla exakt vad som skiljer mellan webbläsaren och ditt program.


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-25 11:39:10 - Martin Eriksson

Ahh, skall prova detta ikväll eller imorgon! Tackar!


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-25 13:37:21 - Tiberiu Covaci

Jag tror att du saknar en "NewLine" i din post data.

Mvh,
Tibi


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-27 14:27:37 - Martin Eriksson

Har testat lite med fiddler och såg då att "Submit=Logga+in"skall skickas med. Har testat det men det hjälpte - naturligtvis inte ;(
När jag jämfört min postdata från en normal inloggning från browser och den från mitt program, så blir contentlength samma , så postdatan borde vara OK nu.

Däremot får jag inte någon vettig cookie-info efter requesten.

Funderar även på om jag behöver lägga in data i request.Accept Charset / Encoding osv. Fattar dock inte hur jag skall koda för att lägga in i dem eller när för den delen. Skall man lägga in det i BeginRequest-eventet som jag läste någonstans?

Skall filura en del till ikväll på detta...


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-27 14:59:02 - Oskar Johansson

Kan du utveckla det där med cookies, hängde inte riktigt med där? Angående att lägga till saker, om du kör med webrequest som jag har för mig att du gör så finns det antingen egenskaper med samma namn, eller så finns det ett dictionary som heter typ headers eller liknande


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-27 15:48:20 - Martin Eriksson

Angående cooiesarna så var det inte mycket att hänga med på ;) eftersom cookieinfon efter requesten inte är alls samma som i cookiesen som browsern åstadkommer (om man jämför de olika fiddler-värdena).

En annan sak är att min applikation 8kör den fortfarande i debug givetvis) inte klarar av att fixa en säker anslutning om "https dekryptering" är påslagen i Fiddler", så jag måste köra med den avslagen. Vet inte riktigt hur det påverkar än, har inte haft så mycket tid de sista två dagarna.

Tack, ska kolla dina tips om headers osv.

Återkommer snarast när jag har mer info.


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-27 16:08:33 - Oskar Johansson

> En annan sak är att min applikation 8kör den fortfarande i debug givetvis) inte klarar av att fixa en säker anslutning om "https dekryptering" är påslagen i Fiddler", så jag måste köra med den avslagen. Vet inte riktigt hur det påverkar än, har inte haft så mycket tid de sista två dagarna.

Viktig detalj ;) Om du kör med internet explorer, och surfar in med aktiverad fiddler med https-proxy, så kommer du i internet explorer bli varnad om osäkert certifikat. Installera då det certifikatet. Sedan kommer det fungera med .net också :)


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-05-29 13:36:24 - Martin Eriksson

Fick lägga till detta i koden någonstans för att Fiddler skulle köras med HTTPS-dekrypteringen påslagen:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
};

i övrigt har jag inte kommit så mycket längre. Det verkar som om inte cookiesarna sätt ordentligt. Jag får bara en cookie med SESSIONID men det skall sättas fler om man jämför mot browserinloggningen.

AZASession och AZALite skalll sättas också men det gör de inte.

Nu är jag rätt matt på detta!!!!


Svara

Sv: Login till websida via C#-applikation

Postades av 2009-05-30 17:05:09 - Oskar Johansson

Testa att gå till inloggningssidan först, sedan logga in.


Svara

Sv:Login till websida via C#-applikation

Postades av 2009-06-01 23:13:32 - Martin Eriksson

Tack! Har testat det också, men jag får bara återigen se inloggningssidan.

Lade till denna raden:

ServicePointManager.Expect100Continue = false;

men ingen bättring. Kan tydligen skapa problem ibland.

Det är något med cookiesarna, de sätts inte ordentligt. Har provat med olika inställningar på CachePolicyn och har i nuläget:

request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Reload);

Jag gnetar vidare...


Svara

Sv: Login till websida via C#-applikation

Postades av 2011-10-03 07:23:54 - Rikard Nilsson

Hej.
Nyfiken om du kommit något längre.

Mvh


Svara

Nyligen

  • 07:25 Är kvaliteten hos Skolyx värd pris
  • 15:38 Tomorrowland Thailand 2026
  • 10:00 White Label Payment Platform
  • 02:45 Spare parts
  • 19:18 mediaspelaren
  • 10:30 Större än
  • 16:38 Vilka faktorer bör jag tänka på nä
  • 14:13 Important tool for growing your we

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 572 705
28 035
260 166
3 201
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies