8

HTTPS を使用したカスタムUserNamePasswordValidatorでWCF サービスを開発しました。basicHttpBindingClientCredentials を使用して認証用のユーザー名とパスワードを送信し、.Net クライアントでうまく機能します。

ただし、Delphi XE クライアントからこれを呼び出す必要があります。Delphi を使用して .Net ClientCredentials に相当するものを送信するにはどうすればよいですか? それは可能ですか?もしそうなら、どのように?そうでない場合、代替手段はありますか?

Tks

編集

以下は、.Net のクライアント側コードです。

EndpointAddress oTransac = new EndpointAddress(GetAddress());
using (WebServiceClient oClient = new WebServiceClient ("httpbasic", oTransac))
{
  oClient.ClientCredentials.UserName.UserName = "username";
  oClient.ClientCredentials.UserName.Password = "password";
  oClient.DoStuff();
}

編集

私はいくつかの調査を行っており、SOAP Hearders を使用して、Delphi と古い asmx Web サービスの間で認証を行うことができました。以下の記事を見つけました。[WebMethod] [System.Web.Services.Protocols.SoapHeader("SoapHeader")]この記事の手法を使用して、古いものと同じ動作を実現できますか?

http://weblogs.asp.net/paolopia/archive/2008/02/25/handling-custom-soap-headers-via-wcf-behaviors.aspx

報奨金を編集

UserNamePasswordValidator報奨金の正解としてマークしてもらうのですが、サーバー側でWCF Serviceを使ってDelphiからWebサービスを呼び出せるようにしたいと思います。

4

2 に答える 2

5

まず、basicHttpBinding は HTTP (HTTPS ではなく) 経由です。

http://msdn.microsoft.com/en-us/library/ms731361.aspx

通常、Delphi から WFC サービスを利用するには、サービスから WSDL を生成します。

既存の WCF サービスから単一の WSDL ファイルを作成する方法は?

http://social.msdn.microsoft.com/Forums/en/wcf/thread/fc2c5074-1116-4f92-a972-01bb3a142535

WCF: WSDL:import なしで単一の WSDL ドキュメントを生成する方法は?

そして、その WSDL を Delphi プロジェクトにインポートして、Delphi プロキシ クラスを生成します。

>wsdlimport.exe service.wsdl

次に、生成された Delphi ユニットを Delphi プロジェクトで使用します

http://www.drbob42.com/examines/examinB9.htm

http://edn.embarcadero.com/article/36962

サービス コールに送信するパラメータ(ユーザー名、パスワード、ClientCredentials など)は、生成された Delphi ユニットで定義されます。サービスに接続できる限り問題ありません。

于 2011-05-23T13:36:58.043 に答える
1

数週間前、私も WCF サービスに接続する必要がありました。クライアントを .net で作成し、UnmanagedExports https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexportsを使用することになりました

dll は、ネイティブ dll のように Delphi で使用できます。

于 2011-06-20T09:49:22.287 に答える