문제

좋아, 여기 내가하고있는 일이 있습니다. 파일을 끌어 내기 위해 서버에 요청하고 있습니다. 나는 당신이 평소와 마찬가지로 웹 사이트에 웹 레퀴스트를 만들어서 당신이 평소와 마찬가지로 응답을 얻음으로써이를 수행하지만, 나는 권한이 없다는 403 오류가 발생합니다.

문제는 URL을 Google 크롬에 연결할 때 리디렉션되고 요청한 파일이 다운됩니다. 다른 브라우저에서 URL을 시도하고 403 오류를 얻습니다.

403 오류를 우회 할 수있는 Google Chrome은 무엇을하고 있습니까? Google Chrome 사용자 에이전트를 사용해 보았지만 도움이되지 않습니다.

돕다

도움이 되었습니까?

해결책 3

도와 주셔서 감사합니다. 귀하의 답변 중 어느 것도 직접 도움이되었지만 시도해 주셔서 감사합니다.

내 프로그램은 서버에서 파일을 꺼내려고했습니다. Chrome을 사용하는 동안 인증 문제를 해결하고 서버에서 파일을 찾는 방법을 알아 냈습니다. 사용자 세션을 사용하여 웹 서비스가 더 발전된 것으로 나타났습니다.

기본적으로 웹 서비스 명령에 액세스 할 수 없었으므로 기본 HTTP URL을 사용하여 사전 정의 된 응답을 얻는 것입니다. 서버 파일을 얻는 데 사용한 파일 URL은 고유하지 않았으며 웹 브라우저 / 세션에 따라 동적이었습니다. httprequest 객체를 사용하여 html 파일을 가져 와서 구문 분석 할 수있었습니다. HTML 파일을 사용하면 파일의 동적 ID를 찾기 위해 구문 분석했습니다 (고유하다고 생각했습니다). 그런 다음 URL의 끝에 첨부했습니다. Chrome에서는 리디렉션되고 다운로드 프롬프트가 제시됩니다. 문제는 파일을 끌어 내고 싶을 때 WebBrowser 객체가 필요하다는 것입니다. 이것을 알면 WebBrowser 객체를 사용하여 파일 ID를 얻은 다음 동일한 WebBrowser 객체 (Webserver에 따라 기술적으로 동일한 세션)를 사용하여 파일을 끌어 내 렸습니다.

다소 복잡합니다. 기본적으로 내 프로그램은 서버가 시도하는 기능을 제공하는 작은 해킹입니다.

이것이 미래의 프로젝트에서 여러분을 도울 수 있기를 바랍니다.

다른 팁

아마도 웹 서버는 Chrome 사용자 에이전트를 인식하고 다른 사용자 에이전트가 아닌 파일을 다운로드 할 수 있습니다. WebRequest를 설정하여 Google Chrome과 동일한 사용자 에이전트 문자열 및 설정을 사용하여 기본적으로 IE 설정을 사용할 수 있습니다.

편집 : 여기에 있습니다 WebRequest 사용자 에이전트 문자열을 설정하는 방법에 대한 MSDN의 지침. 모든 브라우저의 사용자 에이전트를 찾으려면 주소 표시 줄에 입력하십시오.

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

그만큼 403 상태 코드 도달하려는 자원이 금지되어 있음을 나타냅니다. 처럼, 당신이 그것을 얻지 못하기 때문에 묻지 마십시오. 이는 서버가 리소스의 전달을 확인하기 전에 승인 문제가 제시되었다는 점에서 401 코드와 다릅니다.

이것은 프로그래밍 방식 구성 일 수 있지만 웹 서버를 통해 구성된 자원의 액세스 제한에 의해 설명 될 수도 있습니다.

Chrome에서 다운로드 된 리소스가 도달하려는 예상 리소스인지 확인할 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top