【问题标题】:How could I Encrypt OData Request Payload at Client Side(DataServiceContext) and Decrypting Request at ServerSide?如何在客户端(DataServiceContext)加密 OData 请求有效负载并在服务器端解密请求?
【发布时间】:2016-05-26 08:28:32
【问题描述】:

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

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

我需要创建自定义DataServiceClientRequestMessage 还是需要在DataServiceContext 的某处挂钩加密过程。

请求将使用MessageHandler 解密。

ServiceStack Encrypted Messaging

【问题讨论】:

    标签: c# encryption asp.net-web-api odata httprequest


    【解决方案1】:

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

    您可以参考 OData github 存储库中的自定义 DataServiceClientRequestMessage 示例。 TestDataServiceClientRequestMessage.csDataServiceContextWithCustomTransportLayer.cs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      相关资源
      最近更新 更多