에서 Windows 인증을 가진 MVC API를 사용하는,이 질문의 목적 만이 하나의 컨트롤러 :은 내가 MVC 응용 프로그램을 개발 한 VBA
Public Function GetValue()
Return User.Identity.Name
End Function
응용 프로그램은 인트라넷 네트워크에서 사용되는, 따라서 'Windows 인증'으로 설정했습니다.
목적은 VBA를 통해이 응용 프로그램에 쿼리하는 것입니다. 내가 로컬 응용 프로그램 (. Excel을 실행하는 컴퓨터에서 즉 디버그)를 실행하면
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
With objHTTP
.Open "GET", URL, False
.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
.setRequestHeader "Content-type", "application/json"
.setRequestHeader "data-type", "json"
.send
.WaitForResponse
sResult = .ResponseText
End With
Debug.Print (sResult)
, 그것은 크롬을 통해 작동합니다 (로컬 호스트에 접속 : xxxxx는/API/이름은 내 액티브 디렉토리 사용자 이름으로 XML 파일을 반환).
VBA 루틴도 정상적으로 작동하며 출력 창에 Chrome에 표시되는 XML이 표시됩니다.
이제 프로젝트를 IIS 서버에 게시해도 Chrome을 통해 계속 작동합니다 (myserver/api/name에 액세스하면 내 ActiveDirectory 사용자 이름으로 xml 파일이 반환 됨). 내가 VBA 모듈을 실행할 때 그러나, 그것은 오류 401를 반환
Error:401 - Unauthorized: Access is denied due to invalid credentials.
그것이 내가 뭔가를 조정할 필요가 브라우저에서 작동하는 서버 측 구성이 OK 믿고 날 리드하고 있다는 사실 내 VBA. 어떤 당신이 @SWa 코멘트 나에게 :)
를 사용하여 당신은'WinHTTPRequest.5.1' 라이브러리를 사용, 이것은 당신이 당신이 로그인 할 수 있도록 인증 설정을 조정할 수 있도록한다 – SWa