如何以编程方式登录到网站 [英] How do I login programmatically to a web site

查看:104
本文介绍了如何以编程方式登录到网站的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试登录我们的网站并致电网络服务。我无法让页面登录并继续进行服务调用。我使用我的Delphi应用程序得到的响应是登录页面的代码。

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" />
        
        
        
 
        <!--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:





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
    { 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.



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.

推荐答案

logo\" id=\"logo\" alt=\"logo\" src=\"Images/logo.png\" önclick=\"javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(\"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\">
\t

<div id=\"bodyremoved_Panel1\" style=\"height:200px;\">
\t\t<!-- 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 N ame: </label>
</td>
<td>
<input name=\"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
bodycontent


这篇关于如何以编程方式登录到网站的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆