C# 如何在客户端(DataServiceContext)加密OData请求负载,在服务器端解密请求?
我有一个Windows应用程序使用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,或者需要
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
示例。及