Italian Compilare Username e Password per accedere a un sito

3394509365

Active Member
Licensed User
Buonasera, vorrei, con la mia app, accedere ad un sito che però necessita di username e password.

Con l' url riesco ad arrivare alla pagina che ha le due caselline per il login e il pulsante "LOGIN".

Come faccio via codice a compilare anche queste due caselle per entrare direttamente senza dovere compilare manualmente il login?

Si può fare, mi pare che in visual basic ci ero riuscito.

Grazie
 

sirjo66

Well-Known Member
Licensed User
ciao,
non sono proprio esperto in questo ma posso darti alcune indicazioni

Con il Visual Basic (versione 6 o .NET) puoi utilizzare l'oggetto WebBrowser che simula la navigazione esattamente come Internet Explorer ma soprattutto che espone l'interfaccia DOM tramite la quale hai accesso a tutti gli oggetti presenti sulla pagina e puoi quindi compilare i campi e simulare il click sui vari pulsanti e/o link presenti.

Da quel che so io questo non si può fare in B4A, poichè (utilizzando l'oggetto WebView) puoi simulare la navigazione su una pagina web (su internet, intranet o locale) ma non puoi leggerne i risultati nè puoi interagire con gli oggetti in essa presenti.

Se vuoi che la tua pagina web caricata sul WebView possa interagire con il tuo programma B4A devi inserire all'interno della pagina stessa del codice JavaScript che esegue delle chiamate al programma B4A passandogli quindi tutti i dati che vuoi ricavare, ma questo sinceramente non l'ho mai fatto e dal quel che capisco bisogna modificare il codice sorgente della pagina HTML e quindi non credo tu possa farlo su di un sito che non hai fatto tu.

Quello che (secondo me) puoi fare in questo tuo problema specifico, è leggere la pagina HTML utilizzando HttpUtils (e quindi senza parti grafiche, semplicemente ti scarichi il sorgente della pagina), individui dove c'è l'oggetto "input" e gli associ alla proprietà "value" la username, fai la stessa cosa con la password, e poi dai il tutto in pasto alla WebView mostrando a video il tutto, e il cliente devo solo fare "click" sul bottone

Comunque se analizzi bene il codice sorgente della pagina in questione, puoi simulare tu il click del bottone facendo direttamente una chiamata (di solito di tipo POST) alla pagina relativa (che trovi nella proprietà "action" del form relativo) e quindi vai direttamente alla pagina voluta senza nemmeno mostrare la pagina di login, io di solito faccio così e non ho mai avuto problemi.

Se mi dici quale è questa pagina ti posso anche dare un aiuto in più consigliandoti meglio cosa fare.

Una volta chiamata la pagina voluta (passandogli quindi username e password), passi il tutto alla WebView e il cliente continuerà a navigare con quello.

Spero di essere stato chiaro

Sergio

P.S.: cerca sul forum "webviewextra", mi pare sia una estensione del WebView, può essere che abbia la possibilità di interagire con le pagine, prova a dare un'occhiata
 

LordZenzo

Well-Known Member
Licensed User
questo e il DIV di login,
<div id="ctl00_pnlBody_LoginUC_UpdatePanel1">
<div class="loginBoxcontainer">
<div class="loginBox">
<div>
<a href="/">
<img src="/_Layouts/15/SPIntrage-UI/image/logo.png" alt="logo" /></a>
</div>
<div>
<strong>Username</strong>
<div>
<input name="ctl00$pnlBody$LoginUC$UserName" type="text" id="ctl00_pnlBody_LoginUC_UserName" class="LoginTextField" />
</div>
</div>
<div>
<strong class="marginTop">Password</strong>
<div>
<input name="ctl00$pnlBody$LoginUC$Password" type="password" id="ctl00_pnlBody_LoginUC_Password" class="LoginTextField" />
</div>
<div>
<a href="/forgotpasswordpage"
title="Vai alla pagina di recupero password"
class="forgotPassword">password dimenticata?</a>
<br class="clear">
</div>
</div>
<div class="marginTop">
<input type="submit" name="ctl00$pnlBody$LoginUC$Login" value="Accedi" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$pnlBody$LoginUC$Login&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_pnlBody_LoginUC_Login" title="Accedi" class="btn red medium registrati" />
<br class="clear" />
</div>
<span id="ctl00_pnlBody_LoginUC_lblError" class="text-error"></span>
<div class="marginTop">
Sei un nuovo utente?
<a href="/registrazione"
title="Vai alla pagina di registrazione"
class="registrati">Registrati</a>
</div>
</div>
</div>
non ti resta che provare...
 

MarcoRome

Expert
Licensed User
Sulla pagina login ( ....pages/login.aspx ) passa i parametri tramite POST.
I parametri sono 11:

__ASYNCPOST --> true
__EVENTARGUMENT --> ''
__EVENTTARGET --> ''
__EVENTVALIDATION, __REQUESTDIGEST, __VIEWSTATE, __VIEWSTATEGENERATOR,
ctl00$pnlBody$LoginUC$Login --> Accedi
ctl00$pnlBody$LoginUC$Password --> la tua password
ctl00$pnlBody$LoginUC$ScriptManager --> ctl00$pnlBody$LoginUC$UpdatePanel1|ctl00$pnlBody$LoginUC$Login
ctl00$pnlBody$LoginUC$UserName --> la tua username
 
Top