如果我们通过CSOM API连接到SharePoint Online或内部部署,则以编程方式确定

时间:2016-07-14 08:15:48

标签: c# sharepoint sharepoint-2013 office365 csom

我想知道是否有办法确定我们是否要连接到SharePoint Online服务器或内部部署服务器(因为凭据对象类型不同)。我在C#中使用CSOM API与SharePoint 2013和SharePoint Online服务器。

到目前为止,我还没有在ClientContext对象本身找到任何有用的东西,所以我想只是检查一下用户是否登录的登录信息就像是" DOMAIN \ ACCOUNT"或" account@domain.tld"但我不知道是否可以在SharePoint Online或其他方面拥有Domain \ Account登录类型。

如果无法做到,我只是要求用户告诉它是什么类型的服务器。

1 个答案:

答案 0 :(得分:1)

从SharePoint发回的HTTP响应中有一个MicrosoftSharePointTemaServices标头。它包含版本号。 2013年将返回15.0.0.xxxx和O365 16.0.0.xxxx(至少现在,将来可能会破坏版本)。

您可以像这样检索它:

var request = WebRequest.Create("https://sharepoint.contoso.com");
try
{
    request.GetResponse(); //fails with 401
}
catch (WebException ex)
{
    var version = ex.Response.Headers["MicrosoftSharePointTeamServices"];
}