Avatar billede CodingJoe Nybegynder
29. april 2011 - 17:14 Der er 13 kommentarer og
1 løsning

Post data til en side 'bag om ryggen'

Jeg har behov for at poste noget, data til et andet site.
Data er et objekt jeg serialiserer og gør klar til at sende over til et andet site.

Det nemmeste ville være at lave en redirect med en URL sammensat af mine parametre ?&data=blablabla. Problemet er bare at data delen kan overstige maks på en url. Derfor skal det postes. Hvordan kan jeg i metode i en c# fil forcere en post til et andet remote site?

Jeg vil blive smadderglad for et forslag. Jeg skal arbejde over i weekenden og idag, og det er sådan set denne udfordring, jeg sidder med, der forhindrer mig i at gå videre...
Avatar billede arne_v Ekspert
29. april 2011 - 17:23 #1
(Http)WebRequest har fin support for POST.

Jeg mener ogsaa at WebClient kan lave POST.
Avatar billede CodingJoe Nybegynder
29. april 2011 - 17:25 #2
Ja, jeg faldt over webclient. Kan du evt. poste et hurtigt eksempel...hvis du et i baglommen?

:)
Avatar billede CodingJoe Nybegynder
29. april 2011 - 17:41 #3
Jeg skal lige huske at nævne, at brugeren skal samtidig også komme på siden. Så man fysisk poster og ryger på den nye side.
Avatar billede CodingJoe Nybegynder
29. april 2011 - 17:54 #4
HVis det hjælper på forståelsen, så har jeg brug følgende analogisk eksempel:

Jeg har en metode:

public void DoPost(){

  var data = mitSerialiseredeObj;
  var postUrl = "http://www.google.com; 

  //Post data til google og forvent at se søgeresultater
  ...
  ...
  ...

}
Avatar billede janus_007 Nybegynder
29. april 2011 - 17:55 #5
static void Main(string[] args)
        {
            var postData = "some=none";

            var webClient = new System.Net.WebClient();
   
            Uri uri = new Uri("http://domain.....");

            webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

            webClient.UploadString(uri, postData);
         
   
        }
Avatar billede CodingJoe Nybegynder
29. april 2011 - 18:01 #6
Hey Janus

Jeg prøver lige...men det er meget vigtigt at jeg også ryger over på den side jeg poster til. :)
Avatar billede CodingJoe Nybegynder
29. april 2011 - 18:02 #7
Jeg får denne ->
The remote server returned an error: (500) Internal Server Error.
Avatar billede CodingJoe Nybegynder
29. april 2011 - 18:06 #8
Mon det er fordi, den webapplikation jeg poster til laver en GET på mine værdier? Det er nemlig Request.Form['data'], den laver...
Avatar billede CodingJoe Nybegynder
29. april 2011 - 18:12 #9
Det sidste jeg skrev, var lidt hurtigt formuleret...det jeg mener, er at jeg faktisk ikke kan lave en redirect til en specifik url med querystring værdier.

Det skal simulere en formular post, da den modtagende webapp side laver en request.form['data'].
Avatar billede CodingJoe Nybegynder
29. april 2011 - 18:14 #10
...måske noget sikkerhed, der står i vejen? det er et https site jeg vil submitte til...
Avatar billede CodingJoe Nybegynder
29. april 2011 - 18:49 #11
Har lige fundet ud af det ikke vil virke, da serverside post ikke flytter brugeren med over.

Tilbage til inject formular løsniningen :(
Avatar billede janus_007 Nybegynder
30. april 2011 - 16:48 #12
Serverside post og bruger "med over"? Besyndeligt begreb :)
Anyway... prøv at forklare hvad det er du vil prøve på, lyder som om opgaven angribes fra en forkert vinkel.
Avatar billede CodingJoe Nybegynder
09. maj 2011 - 18:43 #13
Jeg lukker denne...det blev til et form injection.

Ved at 'flytte brugeren med over' menes der, at der ved et klik på en submit knap i en form, sker et kald mod serveren, der også flytter brugeren med over på den side man submitter til (fx. ved submits ud mod en anden side på et andet site). Serverside post gør ikke andet end at poste data bagom ryggen....
Avatar billede CodingJoe Nybegynder
07. august 2011 - 18:55 #14
.luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester