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


Hitta sessioncookien

Postades av 2003-09-01 17:17:30 - Jimmy Mattsson, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 1619 personer

Som jag skrev i ett annat inlägg så försöker jag göra ett program som klarar av att logga in på en hemsida. Hemsidan använder sig av sessions för att kontrollera att man är inloggad. Problemet ligger i att programmet inte letar rätt på sessioncookien på min hdd så jag "loggas ut" direkt, eftersom servern inte hittar kakan.

Någon som vet hur man löser detta eller har sett ett progam på nätet?


Svara

Sv: Hitta sessioncookien

Postades av 2003-09-01 19:13:27 - Pelle Johansson

Du får nog visa lite kod hur du skapar och söker efter kakan så kanske vi kan se vad som är fel.


Svara

Sv: Hitta sessioncookien

Postades av 2003-09-01 19:38:52 - Johan Normén

Du har en session state men letar efter en cookie? Hum, får det inte att gå ihop.

Sessionen ligger på Serverns minne så på din klient finns egentligen inte en cookie (förutom en som talar om sessionsId:t om jag inte ärute o cyklar)
så du får gärna förklara dig igen.

//Johan N


Svara

Sv: Hitta sessioncookien

Postades av 2003-09-01 22:11:15 - Jimmy Mattsson

Pelle, det är just det jag inte har. Eftersom jag inte har en aning på hur jag ska göra eller hur saker och ting igentligen fungerar bakom kuliserna. Antar att jag måste börja i den änden.

Kan ju förklara lite mer ingående vad själva iden med programmet går ut på, då kanske det blir lättarte att förstå.

I en vanlig webbläsare så funkar det på det här viset:
1. Man skriver in använarnamn och lösenord
2. Servern kontrolerar om använarnamn och lösenord stämmer
3. Man får en cookie med sessions idet
4. Man surfar vidare på sidan

I programmet
1. Programmet skickar automatisk användarnamn och lösenord till servern
2. Servern kontrolerar om använarnamn och lösenord stämmer
3. Man får en cookie med sessions idet
4. Man kan surfa vidare genom prgrammet

Programmet ska alltså fungera lite som en webbläsare. En webbläsare håller ju koll på sessions kakan som skapas, det gör inte mitt program, där ligger felet. Och det är själva sättet man kan lösa detta på. Jag tror inte någon kod skulle komma till någon hjälp eftersom inget är direkt fel, bara funktionen som saknas.

En tanke som slog mig medans jag skrev detta var att sessions idet ska skickas med när man försöker hämta sidan. Kan det vara rätt gissat?

Kod för att hämta en sida
<code>
private string GetHtml(string strSite)
{
string strText = "";

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strSite);
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";

HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader myStreamReader = new StreamReader(myResponse.GetResponseStream(), Encoding.ASCII);

strText = myStreamReader.ReadToEnd();

myStreamReader.Close();
myResponse.Close();

return strText;
}
</code>


Svara

Sv: Hitta sessioncookien

Postades av 2003-09-02 00:16:13 - Johan Normén

Så här gör du.

Du skickar loginuppgifter till sidan, och plockar tillbaka returströmmen. I dennä
header har du Sessionsid:t. Du plockar ut den och skickar med den i alla dina framtida get eller postas.

Ex när du kommer till en sida får du ett huvd som ser ut så här:
<code>
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 01 Sep 2003 22:17:11 GMT
Set-Cookie: ASP.NET_SessionId=dpz0j445mwvw1a55xgl4xh55; path=/
Cache-Control: private
Content-Type: text/html; charset=iso-8859-1
Content-Length: 10669
</code>
Här har du "ASP.NET_SessionId=dpz0j445mwvw1a55xgl4xh55;"
Detta ID skickar du sedan med i alla dina Get eller Post ex:
<code>
GET foo.aspx HTTP/1.1
Accept: */*
Referer: http://www.Foo.com/index.htm
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)
Host: www.Foo.com
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=dpz0j445mwvw1a55xgl4xh55;
</code>

//Johan N


Svara

Sv: Hitta sessioncookien

Postades av 2003-09-02 10:39:41 - Jimmy Mattsson

Jag har med er hjälp nu lyckats arbeta fram den här koden:
<code>
CookieCollection myCookie = null;

private string GetHtml(string strSite)
{
string strText = "";

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strSite);
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
myRequest.CookieContainer = myCookie; //Gillar inte få en CookieCollection

strText = myRequest.Headers.ToString();

HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader myStreamReader = new StreamReader(myResponse.GetResponseStream(), Encoding.ASCII);

//strText = myStreamReader.ReadToEnd();

myStreamReader.Close();
myResponse.Close();

return strText;
}

private void Login()
{
string strInfo = "Username=****&Password=****";

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] SomeBytes = encoding.GetBytes(strInfo);
Market myMarket = new Market();

Console.WriteLine("Not logged in, wait...");

try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.ensida.nu");
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
myRequest.ContentLength = SomeBytes.Length;
myRequest.Method = "POST";
myRequest.Timeout = 10000;
myRequest.AllowWriteStreamBuffering = true;
myRequest.CookieContainer = new CookieContainer();
myRequest.ContentType = "application/x-www-form-urlencoded";

StreamWriter myStream = new StreamWriter(myRequest.GetRequestStream());
myStream.Write(strInfo);
myStream.Close();

HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
myCookie = myResponse.Cookies; //Cookien sparas som CookieCollection

Console.WriteLine("Logged in!");

myResponse.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}

</code>

Det blir ngn konflikt mellan CookieContainer och CookieCollection, Vad ska jag göra åt det problemet? Om jag är ens är rätt ute dvs.


Svara

Sv: Hitta sessioncookien

Postades av 2003-09-02 11:00:51 - Jimmy Mattsson

En timme till i SDK gjorde susen, nu löste det sig. Vad jag gjorde var att skapa en CookieContainer för att sedan Adda myCookie.

<code>
private string GetHtml(string strSite)
{
string strText = "";

CookieContainer myCookieContainer = new CookieContainer();
myCookieContainer.Add(myCookie);

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strSite);
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
myRequest.CookieContainer = myCookieContainer;

HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader myStreamReader = new StreamReader(myResponse.GetResponseStream(), Encoding.ASCII);

strText = myStreamReader.ReadToEnd();

myStreamReader.Close();
myResponse.Close();

return strText;
}
</code>

Tack för all hjälp!


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 155
27 952
271 704
7 962
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