0

ベンダー資格情報のカスタム メッセージ ヘッダーを含む WCF サービスがあります。SoapHeader から継承する「AuthHeader」というクラスを作成し、ユーザー名とパスワードのプロパティを追加しました。

public class AuthHeader : SoapHeader
{
    public string Username;
    public string Password;
}

クライアントで次のコードを使用してヘッダーを追加しています。

 OperationContext.Current.OutgoingMessageHeaders.Add(
    MessageHeader.CreateHeader("Identity", 
                               "http://www.my-website.com",
                               new AuthHeader
                                   {
                                       Username = "UserNameValue",
                                       Password = "PasswordValue"
                                   }
                              ));

次に、以下を使用してサービスのヘッダーを取得しようとします。

var result = OperationContext.Current.IncomingMessageHeaders.GetHeader<AuthHeader>("Identity", "http://www.my-website.com");

このコードはヘッダーを見つけますが、値を正しく逆シリアル化せず、結果オブジェクトのユーザー名とパスワードが null になります。これらのプロパティ値を設定しない理由は何ですか?

4

2 に答える 2

0

AuthHeader属性[DataContract]とフィールドでクラスをマークします[DataMember]

于 2012-07-24T14:02:56.407 に答える