1

WCF-WPFアプリケーションの開発を開始。

クライアントとサーバー間のデータは、メッセージ レベルで暗号化されます。役割とユーザー名とパスワードに基づく独自のポリシーを使用して、カスタムの認証と承認を実装しました。

奇妙なエラーに直面しました。クライアントとサーバー間で転送される [DataContract] を単純型または型が実装している場合、アプリケーションは機能します。しかし、Catel ライブラリの PropertyData を含むアイテムを転送しようとすると。例外の取得 System.Security.Cryptography.CryptographicException: (DigestVerificationFailedForReference) test faileddigest for links \ "# _0 \". "

app.config

  <serviceCredentials>
    <serviceCertificate findValue="01" storeLocation="LocalMachine"
      storeName="My" x509FindType="FindBySerialNumber" />
    <userNameAuthentication userNamePasswordValidationMode="Custom"
      customUserNamePasswordValidatorType="TS.PortraitExpertise.AuthWCF.CustomUserNameValidator, TS.PortraitExpertise.AuthWCF" />
  </serviceCredentials>

モデル例

    [Serializable]
    public  class TestModel : ModelBase
    {
        public TestModel()
        {
        }

        protected TestModel(SerializationInfo info, StreamingContext context)
            : base(info, context) { }


        /// <summary>
        /// Unique key.
        /// </summary>
        public int Id
        {
            get { return GetValue<int>(IdProperty); }
            set { SetValue(IdProperty, value); }
        }

        /// <summary>
        /// Register the Id property so it is known in the class.
        /// </summary>
        public static readonly PropertyData IdProperty = RegisterProperty("Id", typeof(int));
    }

メッセージ レベルで暗号化を無効にすると、データは正常に送信されます。オブジェクトをシリアル化してから逆シリアル化すると、操作は正常に完了します。シリアライゼーション モデルとデシリアライゼーション モデルの間で再生した場合の問題 Katel は暗号化を追加しました。モデル Catel を放棄しない問題を解決するにはどうすればよいですか?

4

1 に答える 1