以前、ReportServer/ReportService2005.asmx Web サービスに対して開発を行いました。
これらの Web サービスにアクセスするには、MSDN のドキュメントで古い .NET 2.0 ベースの Web サービス参照テクノロジを提案しています。ただし、このサービスにアクセスするために WCF (System.ServiceModel) テクノロジを使用することを特に選択しました。.NET 2.0 WSDL または WCF サービス参照のどちらを使用するかに関係なく、どちらの場合も、Web サービス メソッドをラップするプロキシ クラスが生成されます。注目に値するのは、プロキシ クラス自体が異なる (ただし機能的には同等の) 実装を持つことです。参照: http://msdn.microsoft.com/en-us/library/ms155134.aspx
ReportService2005 (SSRS 2008 用) に対して、WCF ベースのサービス プロキシで大きな成功を収めています。最近、古い ReportService2005.asmx/ReportService2006.asmx サービスが廃止されたため、同じことを行うように求められましたが、新しい ReportService2010 Web サービス (SQL Server 2008 R2 用) を使用するように依頼されました。参照: http://msdn.microsoft.com/en-us/library/ms154052.aspx
コンテキスト: ReportService2006.asmx サービスは、Sharepoint 統合モードで SSRS を使用することを目的としています。おそらく、これは主にセキュリティ (認証/承認) に関係しています。
最も簡単に言えば、新しい ReportService2010.asmx サービスは、古い ReportService2005.asmx および ReportService2006.asmx サービスの融合であり、ReportService2010.asmx サービスを「ネイティブ」または「SharePoint 統合」スキャンのいずれにも使用できるようになりました。
結局のところ、私の質問は、API レベルで他に何が違うのですか? PS: SSRS2008R2 が使用をサポートしなくなったこともわかりましたAnonymous
。たとえば、WCF クライアント セキュリティ モードが NTLM を使用して ClientCredentials からユーザー名を渡す "TransportCredentialOnly" に設定されていることを指定するために使用されていた古いサービスに気付きました。対照的に、新しい 2010 サービスでは、WCF クライアント セキュリティ モードが "なし" に設定されており、メッセージには引き続き UserName が含まれていますが、トランスポート セキュリティ (NTLM など) は含まれていません。
2005/2006 サービス (異なる認証メカニズムを使用していた可能性が高い) を統合することで、このような変化が見られるのではないかと推測し始めています。
ただし、以前は次のようにクライアント プロキシの資格情報を指定していたという点で、これは API コードに直接影響します。
proxy.ClientCredentials.ClientCredential = yourCredential;
これはもはや関係がないようです。TrustedUserHeader
また、多くのプロキシ サービス メソッドがインスタンスを最初のパラメーターとして期待していることにも気付きました。例えば:
proxy.CreateFolder( yourTrustedUserHeader, folder , ... );
一部のドキュメントでは、SOAP ヘッダーとして実装されているようです。この TrustedUserHeader オブジェクトには 、 、 などのプロパティが含まれていますがUserName
、UserToken
適切AnyAttr
な使用パターンが何であるかはわかりません。残念ながら、MSDN のドキュメントは、この問題に関する明確なガイダンスを見つけることができず、サービスにアクセスするために WCF ServiceModel を使用していないという点で同様に役に立ちません。
新しい Reporting Services 2010 インターフェイスを現在使用する適切な方法について、誰か洞察を提供していただけますか? 「ClientCredentials」プロパティを設定するのではなく、代わりに「TrustedUserHeader」のインスタンスを作成する必要があります
どうもありがとう!ヤーン