(webs.asmxからの)SharePoint WebサービスGetWebCollectionを使用して、ユーザーが利用できるサイトのリストを取得しようとしています。SharePointで正常に認証されました。サイトパスにハードコーディングすると、ファイルを取り戻すことができます。ただし、GetWebCollectionを使用しようとすると、「403 Forbidden」エラーが表示されますか?
別の方法でダウンするために必要なものは何ですか?
または、ユーザーが自動的に割り当てられているサイトを確認する方法はありますか?
Objective-Cで(ASIHTTPRequestを使用して)SOAP経由で接続しています。
- (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];
}