서버가 HTTP 기본 인증 또는 다른 종류를 사용합니까? HTTP 기본을 사용하는 경우 웹 요청의 Credentials
속성을 올바른 사용자 이름과 비밀번호가 포함 된 자격 증명으로 설정하고 PreAuthenticate
속성을 true로 설정할 수 있습니다.
var uri = new Uri("https://somesite.com/something");
var request = WebRequest.Create(uri) as HttpWebRequest;
request.Credentials = new NetworkCredential("myUserName","myPassword");
request.PreAuthenticate = true;
var response = request.GetResponse();
참고 :
은 여기 예제 (이 검증되지 않은, 그래서 유일한 지침으로 사용)의이 일을 내 경험에 의하면, .NET Framework의 일부 이상한 행동이있다. 당신은 코드가 말한다 무엇을해야한다고 생각 하겠지만 실제로이 수행합니다
서버 당신이 준 자격 증명 401
다시 보내기 요청과 응답없는 자격 증명으로 서버에
- 보내기 요청을 그것
- 서버가 요청을 수락합니다.
왜 이런 일이 일어날 지 몰라, 깨진 것 같아서 아마도 내 컴퓨터의 버크와 어쩌면 그것은 당신에게 일어나지 않을 것입니다.
앱이 성능에 민감하지 않고 요청이 대용량 데이터 인 POSTS가 아닌 경우에는 알 수 없지만이를 해결하기 위해 수동으로 HTTP 기본 인증 헤더를 작성하고 설정해야합니다 Headers
컬렉션을 조작하여 수동으로 HttpWebRequest
나는 당신이 묘사하는 행동이 * nix에서 보여지는 것과 동일한 행동이라고 믿는다. 그것은 한 번 시도하고 실패한 다음 자격 증명을 보내고 성공합니다. – Stephan
이것이 http 사양의 일부인 일종의 요청 요청 시퀀스라고 생각합니다. – MGOwen