当前位置: 首页 > 编程语言 > C#

Azure DocumentDB – HTTP请求中找到的MAC签名与计算的签名不同分享

时间:2023-04-10 21:00:04 C#

C#学习教程:AzureDocumentDB-在HTTP请求中发现的MAC签名与计算签名不同我可以调试,让它失败并显示下面的消息,然后再试一次,它就成功了。如果它与我的MAC地址有关,我也尝试从不同的工作站获得相同的结果。Microsoft.Azure.Documents.UnauthorizedException,消息:{“错误”:[“在HTTP请求中找到的MAC签名与计算出的签名不同。服务器在使用字符串后签名–'postndocsnmo1oanohoga=nwed,2015年2月25日格林威治标准时间12:35:57nn'"]}我将如何报告此事,以及b)设法弄清楚发生了什么?我们已经确认这是一个孤立于北欧地区的问题。我们正在对已知帐户应用修复程序,并将很快部署修复程序。如果您不在北欧并遇到此问题,或者如果您在此回复后2-3天内继续查看,请再次与我们联系,以便我们进一步调查。我也有同样的问题。但错误是我的。为了解决这个问题,我更改了Uri方法。之前:this._documentCollectionUri=UriFactory.CreateDocumentUri(this._dataBaseName,this._collectionName,this._dataBaseName);现在:this._documentCollectionUri=UriFactory.CreateDocumentCollectionUri(this._dataBaseName,this._collectionName);缺乏关注或关心FLW能否检查您的系统时钟与错误消息返回的时间是否存在显着差异(<5分钟或>20分钟)?由于时钟偏移,可能会返回此错误。如果是这种情况,更新时钟时间可能会解决问题。DocumentDB客户端使用主密钥和请求的时间戳来构造消息身份验证代码(MAC)以对请求进行身份验证。出于安全原因,该服务会拒绝在小时间窗口之外使用MAC的请求。SDK1.9版中似乎有一个特殊的回归,可能会导致抛出此错误。我很欣赏这与原始问题无关,但如果您在这里发现此错误,那么我认为这是发布它的合适位置。此(错误)代码将在SDK1.8和1.9中给出不同的错误消息:docClient.CreateDocumentCollectionQuery(UriFactory.CreateDocumentCollectionUri(DbName,CollectionName)).Where(c=>c.Id==CollectionName).ToList()With.Any()在1.8中您将正确获取ResourceTypeCollectionisunexpected。在1.9中你会得到TheMACsignaturefoundintheHTTPrequestisnotthesameasthecomputedsignature。服务器使用以下字符串进行签名...在HTTP请求中找到的MAC签名与计算出的签名不同。服务器使用以下字符串进行签名...看起来1.9出于某种原因返回了错误的错误消息(一个OP正在引用)但由于它完全误导你将很难找到问题所在。要清楚;我发布的代码是错误的。我试图解释的问题是SDK版本1.9返回错误的错误消息。以上是C#学习教程:AzureDocumentDB–HTTP请求中发现的MAC签名与计算出的签名不一样。如果对你有用,需要了解更多C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处: