c# - JObject修改了post请求负载中的时间戳

本文关键字:负载 时间戳 请求 post JObject 修改 | 更新日期: 2023-09-27 18:06:50

我有这个Web Api控制器:

 [Route("api/v1/GitHubEvents/{Id}/")]
    [HttpPost]
    public async Task<HttpResponseMessage> PostGitHubEvent([FromBody]JObject value, long id)
    { ...
      gitHubEventAuthenticator.ValidateSignature(...);
    }

当Post请求来自本地时间与控制器时区不同的机器时,签名验证失败,因为原始请求的时间戳与JObject(或IIS/Web Api环境中的任何其他内容)序列化后的时间戳不匹配。

您能建议一种方法来保持原始时间戳而不被JObject/Environment修改吗?

c# - JObject修改了post请求负载中的时间戳

您可以尝试设置DateFormatHandler

JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
{
    DateFormatHandling = DateFormatHandling.Unspecified
};