Autorisierung bei Javaservern
-
Hi,
seht Ihr eine Möglichkeit folgende Seite automatisch zu öffnen:
so per CInternetSession zu öffnen, das man nicht jedesmal das login eingeben muss.
Dahinter dem login stehen datenfiles, die ich sonst jeden morgen von hand downloaden muss.
Die sessionid macht wohl Probs. Geht sowas überhaupt, wenns kein normaler Apacheserver ist, der mit GET autorisiert wird.
Bei MSDN finde ich nur die üblichen Standardlösungen.
Komm nicht weiter.
Hat vielleicht jemand sowas schon mal gemacht?
Gruss
koreson
-
EIne Session wird von der Seite selbst vergeben.
Du braucht für den Login ja eigentlich nur das Login-Formular absenden.
Ob das per GET oder POST gemacht wird spielt da keine rollo.
Der Brwoser macht ja auch nichts anderes.
-
Hi,
ok. Die Seite hab ich komplett per OpenURL vom Server gezogen. Der Auszug hier ist das Login:
<form name="Formular" method="POST" action="/dabip/DE/de/global/jsp/loginResult.jsp" ENCTYPE="application/x-www-form-urlencoded"><input type="hidden" name="content" value="/DE/de/personal/musterdepot/musterdepot_ref.jsp"><input type="hidden" name="usePlainpassword" value="false"><input type="hidden" name="loginDomain" value="DE"><input type="hidden" name="template" value=""> <br> <table border="0" cellpadding="4" cellspacing="0"><tr><td width="70" style="vertical-align:middle"><b>Benutzername:</b></td><td colspan="2"><input type='text' name='username' size='20' maxlength='100' class="tbl" VALUE=''></td></tr><tr><td style="vertical-align:middle"><b>Passwort:</b></td><td colspan="2"><input type='password' name='password' size='20' maxlength='100' class="tbl"></td></tr><tr><td style="vertical-align:middle"><b>Autologin:</b></td><td><input type="checkbox" name="cookie" value="y" unchecked></td><td align="right"><input name="login" type="image" value="Login" src="/images/buttons/b_g_anmelden.gif" border="0" width="72" height="15"></td></tr><tr><td colspan="3" align="center" class="errortxt"></td></tr></table></form>
Wie mach ich jetzt weiter mit "einfach senden". Mein Clientprogramm ist doch nicht der DAB-Server? Setzte ich meine Login-Daten in den obigen Quelltext ein und dann "abschicken". Bitte helft mir auf die Sprünge. Das ist relativ wichtig.
Mit Navigate ? Oder Header senden ?
Wäre tierisch wichtig, das hier zu lösen.Gruss
koreson
-
<input type='text' name='username' size='20' maxlength='100' class="tbl" VALUE=''> <input type='password' name='password' size='20' maxlength='100' class="tbl">
Das sind die wichtigen Felder.
an musterdepot_ref.jsp musst du eine POST absetzen mit den Parametern die unter Name oben drin sind
username=XY
password=XY
-
Hi,
Danke für die Tipps. Bis hierher bin ich jetzt gekommen. Hab mal ne andere, eigene Seite genommen.
CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded"); CString strFormData = _T("konto=xxxx&kontopass=yyyyy"); CInternetSession session; CHttpConnection* pConnection = session.GetHttpConnection(_T("www.iac-net.de")); CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/index.php")); int result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
SendRequest liefert auch immer 1, allerdings sind da doch noch drei wichtige Dinge.
- woran sehe ich, dass ich wirklich eingeloggt bin ? Gints irgendwie ein Fehler-Protokoll?
- wie kann dann auf die freigegebenen Seiteninhalte zugreifen ?
- läuft das mit https Verbindungen genauso?
Bitte noch ein paar kleine Schubser in die richtige Richtung.
Kennt niemand ein komplettes Beispiel im Netz? Alles was ich fand war alt oder ohne Beispiel oder arbeitete mit WinsockGruss
koreson
-
Hi Leute,
jetzt ist es gleich 1 Uhr, und ich komme nicht weiter.
Der folg. Code liefert entweder "Es ist ein Fehler aufgetreten" oder
es wird wieder die login-seite ausgegeben.
Password usw ist alles korrekt.
Hab auch inzwischen alle Kombinationen von servername und file durch.
Was mach ich falsch ???
Kann sich denn niemand erbarmen ?INTERNET_PORT nPort; nPort = 80; DWORD dwStatus; DWORD dwBuffLen = sizeof(dwStatus); CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded"); CString strFormData = _T("username=xxxx&password=yyyy"); CInternetSession session; CHttpConnection* pConnection = session.GetHttpConnection(_T("www.dab-bank.com"),nPort ); CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/musterdepot_ref.jsp")); pFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen); //if(dwStatus>= 200 && dwStatus<300 ) // mit dem if kommt natürlich garnix an int result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength()); CString getcode, buffer; while (pFile->ReadString(getcode)) { buffer = buffer + getcode; } m_Edit2 = buffer; UpdateData(FALSE);
Bitte, Bitte - mit Zucker drauf !
Gruss
koreson