7

アプリケーションを.net1.1から3.5にアップグレードしています。このアプリはWCFサービスに接続します。以前は、Webサービスクライアントは次のようにセキュリティトークンを使用するように構成されていました。

RegistrationWSWse registrationService = new RegistrationWSWse();
Microsoft.Web.Services2.Security.Tokens.UsernameToken token = new Microsoft.Web.Services2.Security.Tokens.UsernameToken("some username", "some password", Microsoft.Web.Services2.Security.Tokens.PasswordOption.SendPlainText );
registrationService.RequestSoapContext.Security.MustUnderstand=false;
registrationService.RequestSoapContext.Security.Tokens.Add(token);

Visual Studioの新しいサービス参照をWebサービスに追加しましたが、自動生成されたコードは、上記のようにセキュリティヘッダーを設定する方法を提供しません。

system.serviceModelこれは、構成ファイルのセクションで構成する必要があるものですか?


アップデート

ユーザー名/パスワードのプロパティが表示されなかったのは、実際の実装クラスではなく、サービスインターフェイスを使用していたためです。

次のように、インスタンスをタイプにキャストすることで、これらを設定できました。

((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.UserName = userName;
((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.Password = password;

あなたがしなければならない他の重要なことはあなたのクライアントapp.configファイルを更新することです。これを行わないと、ユーザー名/パスワードはSOAPヘッダーに設定されません。例:

<security mode="TransportWithMessageCredential" />
4

1 に答える 1

0

MSDN のこの記事を参照してください。この投稿には、質問に関するいくつかの良い情報もあります。

于 2010-11-08T18:07:07.977 に答える