Click here to Skip to main content
15,885,546 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
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.
HTML
<!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" />
        
        
        
 
        <!--add the jquery library first-->
        <script type="text/javascript" src="Scripts/jquery-1.11.0.min.js"></script>
     
        <!-- the jquery ui comes next--> 
        <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" />

        <!--other custom javascript files go last-->
        <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">
//<![CDATA[
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">
//<![CDATA[
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">
                        <!--the text passed to the spinner will display here-->
                    </p>
                </div>
            </div>  

               <div style="height:58px;margin-removed20px;">
                    <!--links in upper-right corner-->
                    <div class="top-links">
                        <!-- none for this master-->
                    </div><!--end top links-->

                    <!-- small, bulleted links above red line, let's call this the quick menu..--> 
                    <div class="top-menu" >
                        <ul  >
                            <!-- none for this master-->
                        </ul>
                    </div><!-- end #top-menu --> 
                </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>  <!-- end #main-menu --> 
            </div> <!-- end #header -->
          
            <div class="subPageWrap"  > 
                  
                <!-- Start Left Column (menu) -->
                <div class="col4 subpagemenu"> 
                </div><!-- End Left Column (menu) --> 

            
                <!-- Start Right Column (content) -->
                <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;">
		<!-- the height of this panel keeps the buttons aligned as the user clicks the links-->
                <h1 class="pageTitle">Login</h1>
                 
                 <!-- username and password controls-->
                    <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 />

                    <!--helpful links-->
                    <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><!--end main login-->         
     
    </div>
      

                </div> <!-- End Right Column (content) -->

                <div class="cleardiv"> </div>
            </div> <!-- End .subPageWrap -->         

             <!-- for google analytics-->
        <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">
//<![CDATA[
var Page_Validators =  new Array(document.getElementById("bodycontent_rfvUserName"), document.getElementById("bodycontent_rfvPassword"));
//
</script>

<script type="text/javascript">
//<![CDATA[
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">
//<![CDATA[

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:

Delphi
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
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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.
Posted
Updated 16-Jun-14 7:10am
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900