다음 코드는 xmlhttp 클래스의 서버 측 개체를 만드는 코드입니다. 기본 인증이 필요한 사이트에 연결하려고합니다. 아래 코드를 사용하여이 작업을 수행 할 수 있습니다.XmlHttp 요청 기본 인증 문제
무엇이 문제입니까? 그럼 공개 통화를 사용하여 자격 증명을 전달합니다. 그것만으로는 충분하지 않습니다. 수동으로 계산 된 base64로 인코딩 된 사용자 이름 : 암호 조합을 사용하여 권한 부여 헤더를 설정해야합니다. 공개 통화에 자격 증명을 전달하지 않고 헤더를 설정하려고하면 실패합니다. 미쳤다고 불러주세요.하지만 자격증을 공개 할 때해야 할 일은 전부입니다. 헤더를 설정하면 그 일을해야합니다. 권리? 두 가지를하는 것은 옳지 않은 것처럼 보입니다. 권리?
이것은 버그입니까?
추가 배경은 다음과 같습니다 ommitted되는 두 항목 중 하나가 HTTP 상태 인 경우 ASP 클래식 오류를 수신 을 IIS 401 : "당신은 당신이 볼 수있는 권한이 없습니다 이 페이지를 볼 수있는 권한이 없습니다 웹 브라우저가 웹 서버가 받아들이도록 구성되지 않은 WWW-Authenticate 헤더 필드를 보내므로 사용자가 제공 한 자격 증명을 사용하여이 디렉터리 또는 페이지를 엽니 다. " IIS는 요청을하기 때문에
나는
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlhttp.setTimeouts 5000, 5000, 10000, 10000 'ms - resolve, connect, send, receive
xmlhttp.open "GET", "http://example.com/", False, "username", "password"
xmlhttp.setRequestHeader "Authorization", "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
xmlhttp.send
당신은 확실히 검사 할 수 있습니다 Fiddler와 같은 요청. ServerXMLHTTP는 WinHTTP를 기반으로합니다 (http://www.fiddler2.com/fiddler/help/hookup.asp#Q-WinH 참조). TTP – EricLaw
@ Eric : OP가 IIS 서버에서이를 수행해야 할 수도 있지만 권한이 있거나 없을 수도 있습니다. – AnthonyWJones