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修改吗?
您可以尝试设置DateFormatHandler
JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.Unspecified
};