SharePoint Online還支持基於聲明的身份驗證模式。此處的一般想法是從用戶憑證獲取身份驗證Cookie(除了發出訪問令牌的OAuth身份驗證流程外)。一旦獲得身份驗證cookie,您可以執行經過身份驗證的 SOAP(例如,通過CSOM API)或針對SharePoint Online資源的REST請求,如下所示。
既然你正在開發ASP.NET Web應用程序, SharePointOnlineCredentials
class從SharePoint Online Client Components SDK可以利用這基本上實現了 基於聲明的身份驗證方案。它可以經由nuget
實施例1被安裝:通過CSOM API請求列表項
using (var ctx = GetContext(webUri.ToString(), userName, password))
{
var list = ctx.Web.Lists.GetByTitle("Documents");
var items = list.GetItems(CamlQuery.CreateAllItemsQuery());
ctx.Load(items);
ctx.ExecuteQuery();
foreach (var item in items)
{
Console.WriteLine(item.FieldValues["FileRef"]);
}
}
其中
private static ClientContext GetContext(string url,string username, string password)
{
var ctx = new ClientContext(url);
var securePassword = new SecureString();
foreach (char c in password) securePassword.AppendChar(c);
ctx.Credentials = new SharePointOnlineCredentials(username, securePassword);
return ctx;
}
實施例2:通過REST API請求列表項
using (var client = new SPHttpClient(webUri, userName, password))
{
var listTitle = "Tasks";
var endpointUrl = string.Format("{0}/_api/web/lists/getbytitle('{1}')/items",webUri,listTitle);
var data = client.ExecuteJson(endpointUrl);
foreach (var item in data["value"])
{
Console.WriteLine(item["Title"]);
}
}
其中
SPHttpClient.cs
- 實現SharePoint Online的HTTP客戶端(SPHttpClient
類)
SPHttpClientHandler.cs
- 實現SharePoint Online的
感謝一堆!那正是我期待的! :) –