Hur kan man via C# 2.0 göra en POST till en annan URL från code behind?
Någon som har koll i sommarvärmen?
[ASP.NET 2.0] Posta till URL
8 svar · 629 visningar · startad av aleborg
Det är tyvärr inte från code behind :/
För att specificera, en användare skriver t ex in sin e-postadress och tillhörande lösenord, i code behind gör vi en koll på vilken e-postserver som används för domänen och gör en POST mot rätt webbmail för att logga in kunden på rätt webbmail.
Varför kan ni inte sätta PostBackUrl på en button från code-behind då?
EDIT: Att jag inte tänkte på problematiken med detta före jag postade...
try
{
ASCIIEncoding encoding = new ASCIIEncoding();
data = encoding.GetBytes(form_post_data);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url_to_be_posted);
myRequest.Method = "POST";
myRequest.KeepAlive = true;
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream;
newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse objResponse;
objResponse = (HttpWebResponse)myRequest.GetResponse();
string redir = objResponse.ResponseUri.AbsoluteUri;
objResponse.Close();
Response.Redirect(redir);
}
catch (Exception ex)
{
// Error handling code
Response.Write("Exception " + ex.ToString());
}
Lite nyfiken på vad du har för använding av detta?
CatZ skrev:
Lite nyfiken på vad du har för använding av detta?
Hmm...
Men tyvärr funkar det inte mot PHP-sidor :/
Har testat med en enkel php-sida som har följande kod: <?=print_r($_POST['u']);?>
Huruvida det är PHP eller inte kan inte spela någon roll. Däremot är ditt kodexempel knappast tillämpligt i särskilt många inloggningsfall (men kanske i ditt), eftersom WebRequest-inloggnigen är i en annan session än användarens.
Den enkla lösningen blir att din sida får skapa ett formulär med hiddenfält som det direkt postar till rätt server, mha javascript.