0

Json WCF 服务方法如下所示:

getFoo(MyDataType data){ ...

WCF 会自动转换如下所示的 HTTP 请求:

  randomGuy{
       name:'John',
       age:18
    }

进入 C# 定义的类型

MyDataType{
    string name {get;set;}
    int age {get;set;}
}

但是如果我加密请求内容,而不是接收看起来像的请求

randomGuy{ name:'John', age:18 } 我会收到 wceweuicn23cb38v934vb398v03c264vb834gv3v7b3vb3647v34vb3v83vh38v43vhv3hv

在 WCF 将 JSON 对象转换为 .net 定义的类型 MyDataType 之前,有什么方法可以先将请求内容解密为 randomGuy{ name:'John', age:18 }?

4

2 回答 2

1

对我来说,你有大约 2 个选择:

  • 选项 1:使用 SSL 进行连接,以保护消息。
  • 选项 2:拦截消息

总之,我相信您正在寻找的答案类似于 IClientMessageInspector,它允许您在 WCF 客户端上操作消息并在必要时拦截它们。这篇文章应该有所解释 -在此处输入链接描述

于 2012-05-05T11:26:24.050 回答
0

在这种情况下,看起来IDispatchMessageInspectorIDispatchMessageFormatter可能会对您有所帮助。通常检查System.ServiceModel.Dispatcher命名空间 - 还有其他有用的工作人员。

IDispatchMessageInspector 的想法是,您可以在传入消息从 JSON 转换为 .NET 对象之前更改(在您的情况下解密)传入消息。

于 2012-05-05T11:27:55.190 回答