其他同事,
我开始编写一个应该工作的SharePoint适配器:支持SharePoint 2016内部部署/在线和365.到目前为止,我已经了解Office365使用Online,因此它将支持的版本缩小到:SharePoint 2016 On-前提和SharePoint Online。
我为每个支持的版本找到了两个不同的API:
SharePoint 2016内部部署 API:SharePoint Server 2016客户端组件SDK https://www.microsoft.com/en-us/download/details.aspx?id=51679
SharePoint Online API:Microsoft.SharePointOnline.CSOM(最新版本 - 16.1.7018.1200) https://msdn.microsoft.com/en-us/library/office/jj193041.aspx https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/
根据信息(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
答案 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是最新的。否则,您可能会发现某些端点不可用。