2014-10-03 4 views
0

우리는 사내 구축 형 SharePoint2013을 보유하고 있으며 여러 인증 방법 (NTLM 및 FBA)을 사용할 수 있습니다.C# SharePoint 2013 CSOM 다중 인증

이제 CSOM으로이 서버에 인증하려고 시도하고 예를 들어 목록을 가져 오려고하면 서버에서 다음을 반환합니다. "액세스가 거부되었습니다.이 작업을 수행 할 권한이 없거나이 리소스에 액세스 할 수 없습니다." 권한 (모든 권한을 가지고 있고 필요한 것이 무엇이든)이 있어야하며 SharePoint는 FedAuth 쿠키를 제공합니다. 피들러로 요청을 확인했는데 CSOM이 시작되어 실행 중이더라도 client.svc 서비스에 액세스 할 수없는 것 같습니다. 코드 샘플 :

using System; 
using System.Net; 
using System.Security; 
using SP = Microsoft.SharePoint.Client; 

namespace TestConsoleTemp 
{ 
public class Program 
{ 
    static void Main(string[] args) 
    { 
     using (SP.ClientContext context = new SP.ClientContext("https://mywebsite.com")) 
     { 
      var cc = new CredentialCache(); 
      var passWord = new SecureString(); 
      foreach (char c in "password".ToCharArray()) passWord.AppendChar(c); 
      cc.Add(new Uri("https://myportal.sis.lt"), "NTLM", new NetworkCredential("username", passWord, "domain")); 
      context.Credentials = cc; 
      context.ExecutingWebRequest += new EventHandler<SP.WebRequestEventArgs>(clientContext_ExecutingWebRequest); 
      var list = context.Web.Lists.GetByTitle("listName"); 
      context.Load(list); 
      context.ExecuteQuery(); 
     } 
    } 
    static void clientContext_ExecutingWebRequest(object sender, SP.WebRequestEventArgs e) 
    { 
     e.WebRequestExecutor.WebRequest.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f"); 
    } 
    } 
} 

같은 코드도 헤더를 추가하지 않고 우리는 NTLM 인증 또는 클라우드에 (마이크로 소프트 오피스 365)가 다른 서버와 함께 작동합니다.

누군가 NTLM 및 FBA를 사용할 때 CSOM이 작동하지 않는 이유를 설명 할 수 있습니까?

답변

0

우리는 로그인 페이지 및 인증과 관련하여 동일한 문제에 봉착했습니다. 사용자 정의 로그인 페이지를 사용하는 경우 here에 설명 된 단계에 따라 CSOM을 작동시킵니다. 사용자 정의 로그인 페이지를 사용하지 않는 경우에도 SharePoint 기본 로그인 페이지를 사용하여 동일한 활동을 시도 할 수 있습니다.

+0

SharePoint 사이트 자체를 수정하지 않고 인증 할 수 있는지 궁금한 사용자 지정 로그인 페이지가 있습니다. 클라이언트 용으로 개발 중이거나 제어 할 수없는 경우 항상 그렇게 할 수있는 것은 아니기 때문입니다. – PsMaster

+0

CSsite는 15 개의 하이브 폴더에있는 로그인 페이지에 액세스 할 수 없으므로 오류가 발생해도 내 SharePoint 사이트에 동일한 내용을 원했습니다. 나는이 기사를 찾았습니다. (http://blogs.msdn.com/b/sridhara/archive/2014/02/06/sharepoint-2013-csom-call-from-web-part-fails-with-401- for-all-users.aspx)하지만 내 시스템에서 시도하지 않았습니다. 이 도움이 될 수 있습니다. – Godwin