获取SharePoint中可供用户使用的网站列表

获取SharePoint中可供用户使用的网站列表,sharepoint,soap,Sharepoint,Soap,我一直在尝试使用webs.asmx GetWebCollection中的sharepoint web服务来获取用户可用的网站列表。我已使用sharepoint成功进行身份验证,如果我在网站路径中使用硬代码,我可以获取文件。但是,当我尝试使用GetWebCollection时,会出现403禁止错误 需要以不同的方式进行哪些操作 或者,有没有办法告诉用户自动分配到哪个站点 我正在通过SOAP连接Objective-C中的ASIHTTPRequest - (void)getUrl { NSURL *

我一直在尝试使用webs.asmx GetWebCollection中的sharepoint web服务来获取用户可用的网站列表。我已使用sharepoint成功进行身份验证,如果我在网站路径中使用硬代码,我可以获取文件。但是,当我尝试使用GetWebCollection时,会出现403禁止错误

需要以不同的方式进行哪些操作

或者,有没有办法告诉用户自动分配到哪个站点

我正在通过SOAP连接Objective-C中的ASIHTTPRequest

- (void)getUrl {

NSURL *url = [NSURL URLWithString:@"https://[server]/_vti_bin/Webs.asmx"];

requestGetSites = [ASIHTTPRequest requestWithURL:url];
[requestGetSites setDelegate:self];

NSString *soapMessage = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                         "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
                         "<soap:Body>\n"
                         "<GetWebCollection xmlns=\"http://schemas.microsoft.com/sharepoint/soap\" />\n"
                         "</soap:Body>\n"
                         "</soap:Envelope>";

[requestGetSites setUseCookiePersistence:NO];
[requestGetSites setUsername:@"username"];
[requestGetSites setPassword:@"password"];
[requestGetSites appendPostData:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
[requestGetSites addRequestHeader:@"Content-Type" value:@"text/xml; charset=utf-8"];
[requestGetSites addRequestHeader:@"Host" value:@"[a server]"];
[requestGetSites addRequestHeader:@"SOAPAction" value:@"http://schemas.microsoft.com/sharepoint/soap/GetWebCollection"];

NSLog(@"Request headers are: %@", [[requestGetSites requestHeaders] description]);

[requestGetSites startSynchronous];

}

我已经公开了一个用于连接SharePoint的SharePoint库,网址为

您是否尝试过执行POST请求?@woody993是否有可能在不手动构建SOAP消息wsdl2obj存根的情况下使用ASIHTTPRequest?@surlac我上一次使用wsdl2obj是在一年多前,从那时起,我编写了一个封闭源代码库,它使用libxml构造XML有效负载,所有请求都使用NSURLConnection和操作队列发出,响应使用libxml解析为模型对象。然后,我扩展了该库以构建特定于SharePoint的SOAP方法和有效负载。根据SharePoint/SOAP的数量,如果您不打算使用每一种WSDL方法,那么这样做也可能是您的最佳选择。所以在回答你的问题时,我并不完全sure@woody993谢谢看看你的图书馆会很棒,但听起来好像没有可能分享。现在我尝试使用sudzc.com为请求生成存根,它看起来更干净,但它没有生成一个模型来将结果放入其中。因此,我正在考虑将每个响应保存为XML,并从生成的XML生成一个模型。这是正确的方法吗?@surlac我确实有计划在未来开放源代码,并且会尝试并记住在我开放时让你知道,但可能在几个月内不会。关于模型,我就是这样做的,我阅读XML并从中创建模型对象