1

开始开发 WCF-WPF 应用程序。

客户端和服务器之间的数据在消息级别进行加密。使用基于角色和用户名和密码的自己的策略实施自定义身份验证和授权。

面对一个奇怪的错误。如果简单类型或类型实现在客户端和服务器之间传输的 [DataContract],则应用程序可以工作。但是,当我尝试传输包含 Catel 库的 PropertyData 的项目时。获取异常 System.Security.Cryptography.CryptographicException: (DigestVerificationFailedForReference) 链接 \“# _0 \”的测试摘要失败。"

应用程序配置

  <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

0

对于客户端和服务器之间的数据传输,请使用 ssl。问题状态 https://catelproject.atlassian.net/browse/CTL-308

于 2014-02-05T17:36:59.877 回答