Security頭是必須調用的SharePoint API。你有不同的方式來獲取AccessToken,包括純粹的HTTP調用ADFS或login.microsoft,但我認爲你需要它。
使用原生客戶端上下文的樣品。
使用更常見的REST調用
ClientContext clientContext = new ClientContext(someSharePointUrl);
clientContext.ExecutingWebRequest += delegate (object sender, WebRequestEventArgs e)
{
e.WebRequestExecutor.WebRequest.Headers["Authorization"] = string.Format("Bearer {0}", someUserToken);
};
//... then use clientContext as usual
的樣本,還包括formDigest
HttpWebRequest itemRequest =
(HttpWebRequest)HttpWebRequest.Create(hostUrl + "/_api/Web/lists/getbytitle('" + listName + "')/items");
itemRequest.Method = "POST";
itemRequest.ContentLength = itemPostBody.Length;
itemRequest.ContentType = "application/json;odata=verbose";
itemRequest.Accept = "application/json;odata=verbose";
itemRequest.Headers.Add("Authorization", "Bearer " + token);
itemRequest.Headers.Add("X-RequestDigest", formDigest);
另一種選擇是使用AppOnlyToken,但你必須扮演並用來API調用,需要自己管理用戶ID!
感謝輸入@Albo,這個問題越來越訪問令牌只是,我不希望將用戶重定向到互聯網,需要一個內聯網解決方案。我對ADFS瞭解不多,請你解釋一下如何解決這個問題。 –