우리는 사내 구축 형 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이 작동하지 않는 이유를 설명 할 수 있습니까?
SharePoint 사이트 자체를 수정하지 않고 인증 할 수 있는지 궁금한 사용자 지정 로그인 페이지가 있습니다. 클라이언트 용으로 개발 중이거나 제어 할 수없는 경우 항상 그렇게 할 수있는 것은 아니기 때문입니다. – PsMaster
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