2012-04-19 18 views
1

私はshareweb Webサービス(webs.asmxから)GetWebCollectionを使用して、利用可能なサイトの一覧を取得しようとしています。私はSharepointで正常に認証されており、サイトのパスにハードコードがあれば、ファイルを取り戻すことができます。しかし、GetWebCollectionを試してみると、 "403 Forbidden"というエラーが出ます。SharePointで利用可能なサイトの一覧をユーザーに入手する

何が違うのですか?

また、ユーザーが自動的に割り当てられるサイトを特定する方法はありますか?

私はObjective-CのSOAP(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]; 

}

+0

で入手可能なのSharePointに接続するために使用するSharePointライブラリをオープンソース化していますか? – woody993

+0

@ woody993 SOAPメッセージ(wsdl2objスタブ)を手動で構築せずにASIHTTPRequestを使用する可能性はありますか? – surlac

+0

@surlac私はlibxmlを使用してXMLペイロードを構築するクローズドソースライブラリを作成し、すべての要求はNSURLConnectionと操作キューを使用して作成されてから、レスポンスはモデルオブジェクトにlibxmlを使用して解析されてから1年以上前にwsdl2objを使いました。その後、そのライブラリを拡張して、SharePoint固有のSOAPメソッドとペイロードを構築しました。どのくらいのSharePoint/SOAPに依存するのか、すべてのWSDLメソッドを使用する予定がない場合は、これを行うのが最善の策かもしれません。だからあなたの質問への答えで、私は完全にはわからない – woody993

答えて

関連する問題