문제

Sharepoint 클라이언트 개체 모델을 사용하여 aspx 페이지에서 sharepoint 목록 항목을 참조하려고 합니다.나는 이 목록에 대한 '모든 권한' 권한을 부여 받았습니다.문제는 페이지에 하드 코딩된 비밀번호를 사용하여 명시적으로 ClientContext.Credentials를 설정한 경우에만 요청을 완료할 수 있다는 것입니다.분명히 나는 ​​내 사이트 방문자가 내 자격 증명을 기반으로 하는 항목에 액세스하는 것을 원하지 않습니다.

이렇게 하면 작동하지만 프로젝트 요구 사항을 충족하지 않습니다.

ClientContext cc = new ClientContext("http://sharepoint.site.com/sitename");
cc.Credentials = new NetworkCredential("username", "password", "domain");

web.config에 설정했는데 제대로 작동하는 것 같습니다.내가 확인할 때 WindowsIdentity.GetCurrent().Name 여기에는 올바른 "도메인\사용자 이름" 정보가 표시됩니다. 이는 내 자격 증명이 유효하다는 의미라고 생각합니다.그렇다면 SharePoint는 왜 cc.ExecuteQuery(); "System.Net.WebException 원격 서버에서 오류를 반환했습니다.(401) 승인되지 않았습니다."?

사용자가 NetworkCredential 개체를 생성하는 데 사용할 암호를 입력할 수 있는 텍스트 상자를 화면에 배치할 수 있지만 지금은 고객(내 상사)이 이에 만족하지 않을 것이며 나에게 말할 것이라고 말할 수 있습니다. 해결 방법을 찾길 원해요.

편집하다:Sharepoint 사이트는 다른 사이트에서 호스팅되지만 동일한 회사 인트라넷 내에 있습니다.

도움이 되었습니까?

해결책

Kerberos, NTLM, 양식 또는 클레임을 사용하고 있습니까?내 생각엔 NTLM을 사용하고 있고 NTLM 이중 홉 "문제"가 발생한 것 같습니다.

http://blogs.msdn.com/b/besidethepoint/archive/2010/05/09/double-hop-authentication-why-ntlm-fails-and-kerberos-works.aspx

가장 쉬운 다음 단계는 아마도 사이트를 Kerberos로 변경하는 것입니다.SharePoint에서 Kerberos를 설정할 때 도움이 되는 몇 가지 리소스를 설명하는 블로그 기사가 있습니다.

http://steve.thelineberrys.com/resources-for-setting-up-kerberos-authentication-in-sharepoint/

다른 팁

사용해 보셨나요? DefaultCredentials 대신 현재 사용자의 신원을 파악하려면?

추가로:이 aspx가 SharePoint 사이트 내에서 실행되고 있나요?그렇다면 클라이언트 개체 모델을 사용하는 이유는 무엇입니까?서버 OM을 사용하십시오.훨씬 쉽고 번거로움도 덜합니다.

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