I am trying to log in to our web site and call a web service. I can't get the page to log in and move on to the service call. The response I get with my Delphi app is the code to the log in page.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"><title>
Login
</title><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><link href="Styles/grid.css" rel="stylesheet" /><link href="Styles/styles.css" rel="stylesheet" type="text/css" />
<!--
<script type="text/javascript" src="Scripts/jquery-1.11.0.min.js"></script>
<!--
<script type="text/javascript" src="Scripts/jquery-ui-1.10.4.custom.min.js"></script>
<link type="text/css" href="Styles/theme/jquery-ui-1.10.4.custom.css" rel="stylesheet" />
<!--
<script type="text/javascript" src="Scripts/accordionnav.js"></script>
<script type="text/javascript" src="Scripts/loadingMsg.js"></script>
<script type="text/javascript" src="Scripts/Dialogs.js"></script>
</head>
<body id="body">
<form method="post" action="Login.aspx?ReturnUrl=%2fservice1.asmx%2fAdd" önsubmit="javascript:return WebForm_OnSubmit();" id="form2">
<div class="aspNetHidden">
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTIzNjM3MzI1Ng9kFgJmD2QWAgIDD2QWAgILD2QWBgIDD2QWAgIBD2QWAgIHDw8WAh4UVmFsaWRhdGlvbkV4cHJlc3Npb24FSig/PV4uezgsMTV9JCkoPz0uKlxkKSg/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlshQCMkJV4mKigpXytdKSg/IS4qXHMpLiokZGQCBQ9kFgICAw8PZBYCHgdvbmNsaWNrBSRkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICd3YWl0JztkAgcPZBYCAgMPD2QWAh8BBSRkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICd3YWl0JztkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQpjdGwwMCRsb2dvO/1Hi1g+jNairyPZjBZb5CycRFaJ3WvRK9MWSnt+H6o=" />
</div>
<script type="text/javascript">
var theForm = document.forms['form2'];
if (!theForm) {
theForm = document.form2;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
</script>
<script src="/WebResource.axd?d=nApapybjnnaEBxXK-cV-gXMdjpdvHJ8U0nxsjWU3DGWci9InpgHlIjJYE5OAemLONlJrQRGJDnBwNL144Z5vLams9JX3UAigdIosxmljxjM1&t=635195625120000000" type="text/javascript"></script>
<script src="/WebResource.axd?d=dmNuWgvK1cJKged6ODWTrMrvIXbfgu3wkWEBa97D9j7gPYKZoszeiODoDOBARj7NRhpfKcJnsu3GXVRUz9TKq5Zs6KyF1_FI2WSiSihZ2C81&t=635195625120000000" type="text/javascript"></script>
<script src="/WebResource.axd?d=RKMWTMp276ah9smNMaTaT93j8b99B3SaojbaVzhOI1r7p0ax1UuEaDfHnC74RoiqE1eOBfsZTN2ZkFVBvddAJ8dD0FuS0KD4NYUxMQjTkG01&t=635195625120000000" type="text/javascript"></script>
<script type="text/javascript">
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
</script>
<div class="aspNetHidden">
<input type="hidden" name="__PREVIOUSPAGE" id="__PREVIOUSPAGE" value="rJ_wa2apHM10cSuPL2Cg0faw8wtKNthKuF9A2Zj9rnyIpjIo21Q_nbAutTGFXA75II16TruK4tJn6BvfXgc23e5dKzZFvNQ-m8Fv9Y0kNwg1" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAn2TWd+zjsedSMWxIejXjL3LmJxEO41Lgaox/xxNW0V6qfGEXROoiEoFFs3WvEoA+yX4LuzvCRxfj8HFGIF8sQiRJpdpCB8AfawTfV9IANlLBNNSMVb45A5RQeIrvQqHeq54IW3Kg6YVLraV4lc5ZRAwt0jNPAodXSy1b5w/lufuYAEAziu4pBRKAVCZXRhemLmRDZ+RQnkKRQyHw5/VDsgbw8/DW8FVRMBIZRVCVM5LA==" />
</div>
<div id="header">
<div id="loading">
<div id="loadingcontent">
<p id="loadingspinner">
<!--
</p>
</div>
</div>
<div style="height:58px;margin-removed20px;">
<!--
<div class="top-links">
<!--
</div><!--
<!--
<div class="top-menu" >
<ul >
<!--
</ul>
</div><!--
</div>
<div id="main-menu">
<div style="height:58px;margin-removed20px;">
<input type="image" name="ctl00$logo" id="logo" alt="logo" src="Images/logo.png" önclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$logo", "", true, "", "/", false, false))" />
</div>
</div> <!--
</div> <!--
<div class="subPageWrap" >
<!--
<div class="col4 subpagemenu">
</div><!--
<!--
<div class="col3">
<div>
<div id="bodyremoved_pnlLogin" önkeypress="javascript:return WebForm_FireDefaultButton(event, 'bodyremoved_btnLogin')" style="height:550px">
<div id="bodyremoved_Panel1" style="height:200px;">
<!--
<h1 class="pageTitle">Login</h1>
<!--
<table class="whitetable2">
<tr >
<td style="width:100px">
<label for="bodycontent_txtUserName" id="bodycontent_lblUserName" class="lbl">User Name: </label>
</td>
<td>
<input name="ctl00$bodycontent$txtUserName" type="text" maxlength="50" id="bodycontent_txtUserName" style="width:250px;" />
<span id="bodyremoved_rfvUserName" class="redtext" style="display:none;">* Required Field</span>
</td>
</tr>
<tr >
<td >
<label for="bodycontent_txtPassword" id="bodycontent_lblPassword" class="lbl">Password: </label>
</td>
<td>
<input name="ctl00$bodycontent$txtPassword" type="password" maxlength="50" id="bodycontent_txtPassword" style="width:250px;" />
<span id="bodyremoved_rfvPassword" class="redtext" style="display:none;">* Required Field</span>
</td>
</tr>
</table>
</div>
<br /><br />
<div class="pagebuttonarea" >
<input type="submit" name="ctl00$bodycontent$btnLogin" value="Login" önclick="javascript:showSpinner('Accessing your account...');WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$bodycontent$btnLogin", "", true, "Login", "", false, false))" id="bodycontent_btnLogin" class="BasicButton" class="BasicButton" />
<input type="submit" name="ctl00$bodycontent$btnClear" value="Clear" id="bodycontent_btnClear" class="BasicButton" class="BasicButton" />
<br /><br />
<!--
<a id="bodycontent_lnkForgotPassword" class="grayitalictext" href="java<!-- no -->script:__doPostBack('ctl00$bodycontent$lnkForgotPassword','')">Forgot your password?</a>
|
<a id="bodycontent_lnkForgotUsername" class="grayitalictext" href="java<!-- no -->script:__doPostBack('ctl00$bodycontent$lnkForgotUsername','')">Forgot your username?</a>
|
<a id="bodycontent_lnkNewAcct" class="grayitalictext" href="java<!-- no -->script:__doPostBack('ctl00$bodycontent$lnkNewAcct','')">Need to create a new account?</a>
</div>
</div><!--
</div>
</div> <!--
<div class="cleardiv"> </div>
</div> <!--
<!--
<script
src="https://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1581194-2";
urchinTracker();
</script>
<script type="text/javascript">
var Page_Validators = new Array(document.getElementById("bodycontent_rfvUserName"), document.getElementById("bodycontent_rfvPassword"));
</script>
<script type="text/javascript">
var bodycontent_rfvUserName = document.all ? document.all["bodycontent_rfvUserName"] : document.getElementById("bodycontent_rfvUserName");
bodycontent_rfvUserName.controltovalidate = "bodycontent_txtUserName";
bodycontent_rfvUserName.errormessage = "* Required Field";
bodycontent_rfvUserName.display = "Dynamic";
bodycontent_rfvUserName.validationGroup = "Login";
bodycontent_rfvUserName.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
bodycontent_rfvUserName.initialvalue = "";
var bodycontent_rfvPassword = document.all ? document.all["bodycontent_rfvPassword"] : document.getElementById("bodycontent_rfvPassword");
bodycontent_rfvPassword.controltovalidate = "bodycontent_txtPassword";
bodycontent_rfvPassword.errormessage = "* Required Field";
bodycontent_rfvPassword.display = "Dynamic";
bodycontent_rfvPassword.validationGroup = "Login";
bodycontent_rfvPassword.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
bodycontent_rfvPassword.initialvalue = "";
</script>
<script type="text/javascript">
var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
ValidatorOnLoad();
}
function ValidatorOnSubmit() {
if (Page_ValidationActive) {
return ValidatorCommonOnSubmit();
}
else {
return true;
}
}
WebForm_AutoFocus('bodycontent_txtUserName');
</script>
</form>
</body>
</html>
The Delphi code that makes the call is here:
unit WebServiceCaller;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdHTTP, IdSSLOpenSSL;
type
TForm1 = class(TForm)
Button1: TButton;
EditWindow: TEdit;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
function PostExample: string;
var
lHTTP: TIdHTTP;
lParamList: TStringList;
LHandler: TIdSSLIOHandlerSocketOpenSSL;
Str: TStringList;
begin
lParamList := TStringList.Create;
lParamList.Add('a=5');
lParamList.Add('b=39');
lHTTP := TIdHTTP.Create(nil);
LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
lHTTP.HandleRedirects := true;
lHTTP.IOHandler:=LHandler;
Str := TStringList.Create;
Str.Add('bodycontent_txtUserName='+userName);
Str.Add('bodycontent_txtPassword='+Passwrod);
Str.Add('bodycontent_btnLogin=Login');
Result:= lHTTP.Post('https://withheld/login.aspx', Str);
FreeAndNil(str);
Result := lHTTP.Post('https://withheld/service1.asmx/Add', lParamList);
finally
FreeAndNil(lHTTP);
FreeAndNil(lParamList);
FreeAndNil(LHandler);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EditWindow.Text := PostExample;
end;
end.
I'm fairly sure what I'm doing wrong is what is stored in 'Str' but I haven't done this before and after reading and searching a good bit for an explaination I have decided to turn to you good folks for assistance.