C# 如何在客户端(DataServiceContext)加密OData请求负载,在服务器端解密请求?

C# 如何在客户端(DataServiceContext)加密OData请求负载,在服务器端解密请求?,c#,encryption,asp.net-web-api,odata,httprequest,C#,Encryption,Asp.net Web Api,Odata,Httprequest,我有一个Windows应用程序使用DataServiceContext使用odatav4WebAPI。WebApi是通过SSL实现的,但我认为任何人都可以使用诸如fiddler(在Windows应用程序主机上)之类的Web调试工具捕获请求,并可以通过更改请求体来重新发出请求 所以我在想,如果我可以在生产环境中使用公钥/私钥在Windows应用程序中加密传出请求的RequestBody。如果是,我怎么能 我是否需要创建自定义的DataServiceClientRequestMessage,或者需要

我有一个Windows应用程序使用
DataServiceContext
使用
odatav4
WebAPI。WebApi是通过SSL实现的,但我认为任何人都可以使用诸如fiddler(在Windows应用程序主机上)之类的Web调试工具捕获请求,并可以通过更改请求体来重新发出请求

所以我在想,如果我可以在生产环境中使用公钥/私钥在Windows应用程序中加密传出请求的
RequestBody
。如果是,我怎么能

我是否需要创建自定义的
DataServiceClientRequestMessage
,或者需要在
DataServiceContext
中的某个位置挂接加密过程

请求将使用
MessageHandler
解密


是的,我认为您可以编写自定义的
DataServiceClientRequestMessage
,并覆盖
GetStream()
以加密输出流。 然后,使用
DataServiceContext.Configurations.RequestPipeline.OnMessageCreating=new CustomRequestMessage()
将新消息设置为DataServiceContext

您可以在OData github存储库中引用自定义的
DataServiceClientRequestMessage
示例。及