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