我正在尝试学习SharePoint客户端对象模型,特别是如何使用远程连接获得所有SharePoint站点url的列表。这可以使用webservices…但我想使用客户端对象模型来实现。
我已经知道如何获得一个特定的sharepoint网站的标题列表使用以下代码:
client object module):
ClientContext ctx = new ClientContext( server );
ctx.AuthenticationMode = ClientAuthenticationMode.Default;
ctx.Credentials = WindowsAuthenticationCredentials(username, password);
Web w = ctx.Web;
var lists = ctx.LoadQuery(w.Lists);
ctx.ExecuteQuery();
//Enumerate the results.
foreach (List theList in lists)
{
}
输出:公告、母版收藏页等
我怎么能做同样的网站url列表?
在web服务中,您可以调用以下代码来实现这一点,但正如我所说的,只是试图找出如何使用客户端对象模块做同样的事情。如果你能提供c#代码,我将不胜感激。
WSPSitedata.SiteData sitedata = new SiteData();
sitedata.Url = @SharePointBaseURL + @"_vti_bin/sitedata.asmx";
sitedata.Credentials = our_credentials
_sSiteMetadata metaData = new _sSiteMetadata();
_sWebWithTime[] webWithTime
sitedata.GetSite(out metaData, out webWithTime, out users, out groups, out vgroups);
SharePoint客户端对象模型CSOM旨在与您的SiteCollection进行远程交互。当然,可以连接到各种sitecollection,但是不可能查看位于SPWebApplications中的所有sitecollection。
在2010年,你仍然可以使用ASMX WebServices,这在早期版本的SharePoint中是可用的。
为了更好地理解CSOM,您应该查看MSDN站点http://msdn.microsoft.com/en-us/library/ee537247.aspx
你真的是指一个包含所有SiteCollection url的列表还是一个误解?
Thorsten