DOMAIN \ USER1 계정으로 실행되는 MVC3 웹 응용 프로그램이 있습니다. 이 사용자는 AD 세트에 SPN이 있으며 위임을 위해 트러스트됩니다.ASP.NET : 호출자를 가장 할 수 없습니다 (2 홉?)
나는이 응용 프로그램이 발신자를 대신하여 셰어 포인트 서버에 액세스하여 그녀/그를 위해 파일을 업로드하기를 원합니다. 다음 코드를 사용합니다.
Dim request = HttpWebRequest.Create(http://sharepoint.domain.com)
request.Method = WebRequestMethods.Http.Head
request.PreAuthenticate = True
Dim identity = New WindowsIdentity(callerName & "@domain.com")
Dim impContext = identity.Impersonate()
'###### At this point identity.ImpersonationLevel is `Impersonate` not `Delegate`
request.Credentials = CredentialCache.DefaultNetworkCredentials
'###### DefaultNetworkCredentials is empty (Username, domain and password are all empty strings)
Dim response As HttpWebResponse
Try
response = request.GetResponse()
Return JsonSuccess()
Catch ex As WebException
'###### I get 401 Unauthorized exception
Return JsonError(ex.Message)
Finally
impContext.Undo()
End Try
내 질문에 대한 답변입니다. 이 시점의 가장 수준은 Impersonate
또는 Delegate
이어야합니다 (Sharepoint는 IIS 서버와 다른 컴퓨터에서 실행됩니다). AD에서 셰어 포인트와 HTTP에 대한 프로토콜 전환도 구성 했으므로 Impersonate
은 요청을 한 후에 Delegate
으로 변경해야합니까? 나도 몰라, 지침을 부탁드립니다.
또 다른 질문은 - CredentialCache.DefaultNetworkCredentials에 적어도 가장 한 사용자의 사용자 이름이 포함되어 있지 않아야합니까? 내가 여기에 대한 답을 찾을