适用于2016内部部署和在线

时间:2017-11-22 09:57:48

标签: sharepoint-online sharepoint-2016 sharepoint-object-model

其他同事,

我开始编写一个应该工作的SharePoint适配器:支持SharePoint 2016内部部署/在线和365.到目前为止,我已经了解Office365使用Online,因此它将支持的版本缩小到:SharePoint 2016 On-前提和SharePoint Online。

我为每个支持的版本找到了两个不同的API:

根据信息(https://dev.office.com/blogs/using-correct-csom-version-for-sharepoint-customizations) 如果您可以保证您的代码不会触及本地版本中未启用的属性,理论上您也可以将SharePoint Online CSOM与内部部署一起使用。 我的用户故事看起来非常明确:文件和文件夹的CRUD操作,结帐/超载/下载/结账。

我的问题:我是否能够使用Microsoft.SharePointOnline.CSOM在OnPremise和Online服务器上满足我的简单用户故事?我无法在On-Premise和Online之间找到任何信息或比较映射表。

如果需要任何其他信息,请通知我。

最诚挚的问候, SVG

1 个答案:

答案 0 :(得分:0)

根据上述评论满足您的要求,您可以将Microsoft.SharePointOnline.CSOM用于OnPrem和在线CSOM代码。因为它们都使用相同的Microsoft.SharePoint.Client命名空间。

一个关键的区别是如何填充ClientContext对象的凭据属性。以下简单示例:

ClientContext cc = new ClientContext(siteUrl);

if (siteUrl.Contains("sharepoint.com"))
{
    // spo email e.g. alex@groveale.onmicrosoft.com
    cc.Credentials = new SharePointOnlineCredentials(username, password);
}
else
{
    // domain login e.g. "groveale/alex"
    cc.Credentials = new NetworkCredential(username, password);
}

如果您的OnPrem网址包含sharepoint.com,您将需要另一种方法来检测Online或OnPrem。

注意 - 您需要确保服务器场中的客户端组件SDK是最新的。否则,您可能会发现某些端点不可用。