我使用OData v4
使用DataServiceContext
WebAPI的Windows应用程序。 WebApi通过SSL,但我认为任何人都可以使用像fiddler这样的Web调试工具(在Windows应用程序主机上)来捕获请求,并且可以通过更改请求主体来重新发出请求。
所以我只是在考虑如果我可以使用生产环境中的公钥/私钥加密Windows应用程序中传出请求的RequestBody
。如果是,我怎么可能?
我是否需要创建自定义DataServiceClientRequestMessage
或需要在DataServiceContext
中的某处挂钩加密过程。
请求将使用MessageHandler
解密。
答案 0 :(得分:0)
是的,我认为您可以编写自定义DataServiceClientRequestMessage
,并覆盖GetStream()
以加密输出流。
然后,使用DataServiceContext.Configurations.RequestPipeline.OnMessageCreating = new CustomRequestMessage()
将新消息设置为DataServiceContext。
您可以在OData github存储库中引用自定义DataServiceClientRequestMessage
示例。 TestDataServiceClientRequestMessage.cs和DataServiceContextWithCustomTransportLayer.cs