2011-07-14 9 views
1

現在、C#プログラムをSharepointに接続しようとしています。私が持っているもの:Sharepoint URL、ユーザー名とパスワード、Sharepoint.dll(クライアントマシン、Microsoft.Sharepoint名前空間なし、Sharepoint Web Servicesを使用しない)、Visual Studio 2010 Ultimate。C#/ VS2010/Sharepoint Lists connect

私はこのチュートリアルに従っ:http://www.scribd.com/doc/8634090/Accessing-SharePoint-Data-Using-C-Without-Running-Code-On-the-SharePoint-Server-Part-1

私がこれまでにやった:

https://.../content/10003194/_vti_bin/lists.asmx 

と私のコードのような私のSharepointのURLと私のプロジェクトに「サービスリファレンス」を追加:

//no TestSP.Lists here... 
TestSP.ListsSoapClient cl = new TestSP.ListsSoapClient(); 
cl.Open(); 

String listGUID = "A9E7107B-7AF6-42DC-A1A7-6C898D55D23E"; 
String viewGUID = "684F5F8A-B32E-461C-BD53-677F84A9C101"; 

//this is where it crashes 
System.Xml.Linq.XElement data = cl.GetListItems(listGUID, viewGUID, null, null, "1000", null, ""); 

IEnumerable<XElement> elements = data.Elements(); 

foreach (XElement el in elements) 
{ 
    Console.WriteLine(el); 
} 

指定された行でクラッシュします。 h:

HTTP認証は、クライアント認証方式「Anonymous」で許可されていません。サーバーから受信した認証ヘッダーは、 'Negotiate、NTLM、Basic realm = "..."'

です。これはユーザー名とパスワードを指定しなかったためです。

TestSP.Credentials = System.Net.CredentialCache.DefaultCredentials; 

問題は次のとおりです:そこにはTestSP.Listsはありませんので、私は唯一のClientCredentials、何Credentialsを持たない、TestSP.ListsSoapClientを使用し、読み取り専用にしている。ウェブ上の様々なチュートリアルが資格証明書は次のように設定することができますSHAT示しました

答えて

1

おそらく、新しい「サービスリファレンス」を使用し、「ウェブリファレンス」を使用しなかった可能性があります。これにより、WCF(Client接尾辞付き)に似たラッパーが作成され、Soapベースのラッパーは作成されません。あなたは使用して、その資格情報を指定することができます。

TestSP.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; 

「Web参照を追加しますが、」Visual Studioの2010年に隠されているしたい場合は、あなたがstill use it to generate code similar to your tutorialことができますが、サービス参照が同様に動作するはずです。

も参照してください:ClientBase<>.ClientCredentials


サイドノート: - Getting XML Data From a SharePoint Listあなたが行うすべてのビューのベース読んリスト項目である場合は、XMLビューを使用して検討する必要があります。 Webリクエストを実行することで簡単にコンテンツを取得できます。アイテムの制限にはいくつか問題がありますが、一般的にはより便利です。

+0

これらの資格情報で同じエラーが発生しましたが、Web参照を追加して動作しているように見えますが、 "承認されていません"というエラーは表示されません。 SoapServerException 'がスローされました。しかし、私はそれが何か他のものだと思っています... –

+0

@エイケー - 私は助けてくれることを願っています。あなたのデータを得るための別の方法を使って答えを更新しました。 – Kobi