提供的凭据“0” 不能用于签署请求

Posted

技术标签:

【中文标题】提供的凭据“0” 不能用于签署请求【英文标题】:The supplied credentials '0' cannot be used to sign request提供的凭据“0” 不能用于签署请求 【发布时间】:2013-05-22 11:49:45 【问题描述】:

在使用 StorageClient Library 2.0 使用共享访问签名来获取表数据时,我一直收到错误“提供的凭据 '0' 不能用于签署请求”。从 GitHub 我可以理解的是错误是由于 sasCredentials.CanSignRequest 返回 false ......但根据 GitHub 中的代码,没有应该返回 true 的场景......它是一个错误......还是我我在这里做错了什么?

StorageCredentials sasCredentials = new StorageCredentialsSharedAccessSignature(sharedAccessSignature); CloudTableClient ctc = new CloudTableClient(tableEndpoint, sasCredentials);

【问题讨论】:

【参考方案1】:

StorageCredentialsSharedAccessSignature 类型在 Azure 存储客户端库 2.0 中不存在。因此,我假设您仍在使用旧版本,很可能是 1.7。正如Introducing Table SAS (Shared Access Signature), Queue SAS and update to Blob SAS 博文中所述,在 Azure 存储客户端库的较新版本中添加了对 Table SAS 的支持。

我强烈建议升级到 2.0,除了您正在寻找的功能之外,它还有许多其他改进。更多详情请参考Introducing Windows Azure Storage Client Library 2.0 for .NET and Windows Runtime。

【讨论】:

以上是关于提供的凭据“0” 不能用于签署请求的主要内容,如果未能解决你的问题,请参考以下文章

Rails — 签署 OAuth1 请求

Google Cloud Api Gateway 是不是提供请求签名和验证 sdk,例如使用 Signature 4 签署 AWS API Gateway 请求?

域 PC 和 SharePoint 站点上的不同凭据。谁的凭据用于 HTTP 请求?

来自凭据提供程序 DLL 的 HTTPS 请求

使用 AFNetworking 2.0 签署 API 请求

使用纯 .net 框架生成和签署证书请求