これは本当にばかげた質問かもしれませんが、解決策を見つけることができませんでした。 SiteMinder認証を使用するサイトでホストされているWCFサービスがあります。認証はクライアント要求のクッキーに依存しています。問題は、svcutilを使用してプロキシクラスを生成しようとすると、svcutillがメタデータを取得しようとすると、要求にSiteMinderクッキーが追加されないためですWCFサービスプロキシクラスをプログラマチックに生成する簡単な方法があるかどうか疑問に思っていました。SiteMinderの保護されたサイトにWCFメタデータを公開する
答えて
コンパイル済みのサービスDLLファイルにアクセスできる場合は、the SvcUtil command line utilityを使用して、データコントラクト用のWSDLおよび関連するXSDを生成できます。このアプローチの主な問題は、schemaLocation属性値の各xsd:import要素に、SvcUtilによって生成されたXSDファイルの名前を追加する必要があることです。
以下は変更されたxsd:import要素のサンプルです。 "http://tempuri.org/"名前空間では、 "tempuri.org.xsd"の値を持つschemaLocation属性を追加して、サービス参照の追加プロセスでWSDLファイルと同じフォルダ内のそのファイルを探すようにしました。 WSDLでwsdl:importを代わりに使用する場合は、schemaLocation属性ではなくlocation属性を追加します。このrelated question and answerは良いスタートを与えるはずです。
<wsdl:types>
<xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import namespace="http://tempuri.org/" schemaLocation="tempuri.org.xsd" />
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="schemas.microsoft.com.2003.10.Serialization.xsd" />
</xsd:schema>
</wsdl:types>
EDIT:
は、コンパイル済みのサービスのDLLを使用してクライアントのコードを生成する2段階のプロセスが必要です。 SvcUtilはクライアントを生成するためにサービスWSDLを必要とします。コンパイルされたDLLを直接使用することはできません。
まず、ServiceContractを含むDLLを使用してWSDLを生成します。サービス契約DLLが同じフォルダにある場合は、サービス実装ファイルを使用できると思います。
cd "\Path\To\Your\Service\DLLs"
svcutil YourService.DLL
サービスの構造によっては、複数のファイルが作成されます。 1つの.WSDLファイルと複数の.XSDファイルがあります。上記のようにこれらのファイルを編集します。
最後に、いずれかのクライアントコードを生成するか、次のようにSvcUtilを使用する(だけの完全なパスとファイル名を入力してください)編集した.WSDLファイルを選択するために、サービス参照の追加]ダイアログボックスのVisual Studioを使用します。
svcutil *.wsdl *.xsd /language:C#
- 1. WCFサービスでsiteminderが保護されている。C#
- 2. 公開中のWCFの保護MVC2 App
- 3. パワーBIパスワードで保護されたウェブサイトに公開する
- 4. WCFメタデータ操作契約パラメータの公開
- 5. SiteMinder SSOがASP.NET MVC 5サイトを保護していません
- 6. Siteminder SSOがASP.NET MVCサイトを保護していません
- 7. 公開派生クラスから保護されたメンバーにアクセス
- 8. 公開REST APIを保護
- 9. Visual Studioから保護されたクラスタエラーへの公開
- 10. WCFこのサービスのメタデータ公開は現在無効にされています
- 11. Concourse公開メタデータ
- 12. Keycloakで保護されたswagger.jsonを公開しようとしているAPI
- 13. WooCommerce REST API v2 - 保護されたメタデータを表示
- 14. Android Kotlin保護されたプロパティは、プライベートタイプを公開します。ExpiresLayout
- 15. siteminderを使ってspring mvc REST APIを保護する
- 16. WCFメタデータ公開でのホスト名の自動解決
- 17. NTLMで保護されたWebサイトを逆プロキシする
- 18. 公開時にソースコードはどれくらい保護されていますか?
- 19. 公開サイトから公開されているHMAC API?
- 20. WCFメタデータを公開するか、またはクライアントにインターフェイスを実装させるか?
- 21. NTLMで保護されたサイトに対してwgetを使用
- 22. 私のサイトに公開された記事をFacebookに自動的に公開させる方法
- 23. 角型1.xビューに公開されたTypescriptのプライベートおよび保護されたメンバー
- 24. 公開されたasp.net webアプリケーションと公開されたwcfサービスIISで接続されていません
- 25. プログラムでパスワードで保護されたWebサイトにアクセス
- 26. アプリケーション/サイトがAzureに公開されたときの通知
- 27. アクセシビリティのあるパスからのエラー "ドキュメントに公開または保護されたクラスがありません"
- 28. セキュリティで保護されたサイト用にHTMLをPDFに変換する
- 29. WCFサービスの公開
- 30. パスワードで保護されたサイト(.htaccess)を持つCronjob
私は私の質問では明確ではないかもしれません。私の問題は、SiteMinderで保護されているため、svcutilがメタデータに到達できないという事実です。 –
SvcUtilコマンドラインでサービスMEX URLを使用していますが、これは気になる恐怖のために動作しません。サービスコントラクトを含むDLLを使用してWSDLを生成し、そこからクライアントを生成することをお勧めします。私はそれを明確にするために答えを更新します。 –
ああ、今私はそれを得る:)おかげで束。 –