アプリケーションを.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" />