Pergunta

Ok, então aqui está o que estou fazendo. Estou fazendo uma solicitação a um servidor para puxar um arquivo. Faço isso fazendo um WebRequest no site a resposta da resposta como você normalmente, embora eu receba um erro 403 dizendo que não tenho permissões.

O problema é que, quando eu conecto o URL ao Google Chrome, sou redirecionado e o arquivo que solicitei desce. Eu tentei o URL em outros navegadores e recebo o erro 403.

O que o Google Chrome está fazendo que permite ignorar o erro 403? Tentei usar o agente do usuário do Google Chrome, mas isso não me ajuda.

Ajuda

Foi útil?

Solução 3

Obrigado pela ajuda. Nenhuma de suas respostas me ajudou diretamente, mas obrigado por tentar.

Meu programa estava tentando tirar um arquivo de um servidor. Eu tinha descoberto como contornar os problemas de autenticação e encontrar o arquivo no servidor enquanto usava o Chrome. Acontece que o serviço da Web é mais avançado usando sessões de usuário.

Basicamente, eu não tinha acesso aos comandos do WebService, então tudo o que eu poderia fazer é usar os URLs básicos de HTTP para obter uma resposta predefinida. O URL de arquivos que eu costumava obter o arquivo do servidor não era exclusivo, era dinâmico, dependendo do WebBrowser / da sessão. Eu estava usando o objeto HttPrequest para obter o arquivo HTML para poder analisá -lo. Com o arquivo html, eu o analisei para descobrir o ID dinâmico do arquivo (eu pensei que era único). Então eu anexaria isso ao final de um URL. No Chrome, eu seria redirecionado e apresentado com o prompt de download. O problema era que eu precisava do objeto Webbrowser quando queria puxar o arquivo. Sabendo disso, usei o objeto WebBrowser para obter o ID do arquivo e, em seguida, usei o mesmo objeto WebBrowser (tecnicamente as mesmas sessões de acordo com o servidor da web) para puxar o arquivo.

É bastante complicado. Basicamente, meu programa é um pequeno hack que fornece funcionalidades de que o servidor é o bloco de tentativas.

Espero que isso tenha ajudado vocês em qualquer um de seus projetos futuros.

Outras dicas

Possivelmente, o servidor da Web reconhece o agente do usuário do Chrome e permite que o arquivo seja baixado por ele, mas não por outros agentes do usuário. Configure o seu WebRequest para usar as mesmas seqüências e configurações do agente do usuário do Google Chrome - por padrão, ele pode estar usando as configurações do IE.

Edit: aqui está Instrução do MSDN sobre como definir a sequência de agentes de usuário do WebRequest. Para descobrir o agente do usuário de qualquer navegador, insira isso em sua barra de endereços:

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

o 403 Código de status Indica que o recurso que você está tentando alcançar é proibido. Como, não pergunte, porque você não está entendendo. Isso difere do código 401, pois um desafio de autorização é apresentado antes do servidor confirmar a entrega do recurso.

Embora isso possa ser uma configuração programática, isso também pode ser explicado pelas restrições de acesso ao recurso, conforme configurado através do servidor da Web.

Você pode verificar se o recurso baixado no Google Chrome é o recurso esperado que você está tentando alcançar?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top