Domanda

Sto cercando di accedere a un sito utilizzando CookieAwareClient (codice qui: C # WebClient Accedere Sito ). Quando accedo al sito usando il mio browser web, ho circa 10 biscotti. Se io disattivare JavaScript e cercare di accedere, ricevo 5 (ActiveTab, id, MCIM, PHPSESSID, nome utente). Ma quando provo ad accedere utilizzando l'CookieAwareClient l'unico cookie di essere salvato è PHPSESSID.

Quale potrebbe essere il motivo per il che gli altri cookie non sono stati salvati? So che il WebClient non esegue JavaScript, ma le altre 3 cookie che vengono generati quando JavaScript è disabilitato non vengono conservati sia.

È stato utile?

Soluzione

In primo luogo, una domanda ovvia: prima è stato spento Script nel tuo browser e tentato di accedere, lo si cancella i cookie per primo? In caso contrario, cancellare i cookie e riprovare.

Supponendo che hai fatto cancellare i cookie prima e ancora ricevuto 5 nuovi cookie dopo un login no-script, poi guardando i nomi dei cookie mancanti Direi che il vostro CookieAwareClient non sta registrando in realtà con successo nel utente. La mancanza di un cookie "username" è quello che mi aspetto, se l'account di accesso non è riuscito. Quando si guarda il codice HTML restituito dalla richiesta di accesso, fa apparire come un account di accesso di successo? O è tornando una sorta di errore?

Se il codice HTML restituito è un login riuscito, quindi il prossimo possibile colpevole sarei guardo sarebbero ulteriori richieste in corso di esecuzione da parte del browser, ma non eseguita dal codice. Ad esempio, la pagina di login potrebbe avere un REFRESH META che reindirizzato a un'altra pagina (che ha fissato un biscotto). O la pagina di login potrebbe contenere un IFRAME, IMG, SCRIPT, ecc, che a sua volta impostato un cookie. Per diagnosticare questo, utilizzare Fiddler, Firebug, o un altro strumento simile per vedere quali specifiche richieste HTTP vengono eseguite dal browser come parte del processo di login. Assicurarsi che il POST alla pagina di login sta facendo tutto il cookie-impostazione, e se no, allora avrete bisogno di aggiungere ulteriori richieste al codice dopo l'accesso iniziale.

Se si scopre c'è solo un cookie HTTP richiesta di impostazione, allora il problema è likley essere i dati HTTP headers o POST che il codice sta inviando (o non l'invio) al server. Il browser è probabile inviando intestazioni differenti o dati POST. Diagnosticare questo richiede anche Firebug, Fiddler, o uno strumento simile per confrontare i dati HTTP headers e POST che un browser sta inviando rispetto a quello che il codice sta inviando.

Se nessuno di questi suggerimenti lavoro, inviare un commento e possiamo iterare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top