Domanda

Okay, ecco cosa sto facendo. Sto inviando una richiesta a un server per estrarre un file. Faccio questo facendo un WebRequest al sito Web per ottenere la risposta proprio come faresti di solito, anche se ricevo un errore 403 che dice che non ho autorizzazioni.

Il problema è quando collego l'URL a Google Chrome vengo reindirizzato e il file che ho richiesto scende. Ho provato l'URL su altri browser e ho riscontrato l'errore 403.

Che cosa sta facendo Google Chrome che gli consente di bypassare l'errore 403? Ho provato a utilizzare Google Chrome User Agent, ma questo non mi aiuta.

Aiuto

È stato utile?

Soluzione 3

Grazie per l'aiuto. Nessuna delle tue risposte mi ha aiutato direttamente, ma grazie per averci provato.

Il mio programma stava tentando di estrarre un file da un server. Avevo capito come aggirare i problemi di autenticazione e trovare il file sul server durante l'utilizzo di Chrome. Si scopre che il loro servizio web è più avanzato usando le sessioni utente.

Fondamentalmente non avevo accesso ai comandi del servizio web, quindi tutto quello che potevo fare era usare gli URL http di base per ottenere una risposta predefinita. L'URL dei file che ho usato per ottenere il file del server non era univoco, era dinamico a seconda del browser web / della sessione. Stavo usando l'oggetto HTTPRequest per ottenere il file HTML in modo da poterlo analizzare. Con il file html l'ho analizzato per scoprire l'ID dinamico del file (ho pensato che fosse univoco). Quindi lo allego alla fine di un URL. In Chrome verrei reindirizzato e presentato con il prompt di download. Il problema era che avevo bisogno dell'oggetto webbrowser quando volevo tirare giù il file. Sapendo questo ho usato l'oggetto webbrowser per ottenere l'ID file, quindi ho usato lo stesso oggetto webbrowser (tecnicamente stesse sessioni secondo il server web) per estrarre il file.

È piuttosto complicato. Fondamentalmente il mio programma è un piccolo trucco che fornisce funzionalità che il server è provare a bloccare.

Spero che questo ti abbia aiutato in uno dei vostri progetti futuri.

Altri suggerimenti

Probabilmente il web server riconosce l'agente utente di Chrome e consente al file di essere scaricato da esso, ma non da altri agenti utente. Imposta il tuo WebRequest per utilizzare le stesse stringhe e impostazioni dell'agente utente di Google Chrome: per impostazione predefinita potrebbe utilizzare le impostazioni di IE.

Modifica: ecco le di MSDN su come fare imposta la stringa dell'agente utente WebRequest . Per scoprire l'agente utente di qualsiasi browser, inseriscilo nella sua barra degli indirizzi:

javascript:prompt('my user agent string is', navigator.userAgent);

Il codice di stato 403 indica la risorsa che stai tentando di raggiungere è vietato. Come in, non chiedere perché non lo capisci. Ciò differisce dal codice 401 in quanto viene presentata una richiesta di autorizzazione prima che il server confermi la consegna della risorsa.

Sebbene questa potrebbe essere una configurazione programmatica, ciò potrebbe anche essere spiegato dalle restrizioni di accesso alla risorsa configurate tramite il server Web.

Puoi verificare che la risorsa scaricata in Google Chrome sia la risorsa prevista che stai tentando di raggiungere?

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