【发布时间】:2021-04-13 21:42:13
【问题描述】:
我正在为 Cosmos DB Table API 试用 rest-from-.net。
设置endpoint、masterKey、databaseId、collectionId。我正在使用内部资源 ID。将x-ms-version设置为2017-07-29。
在line 84之前添加了以下内容。
client.DefaultRequestHeaders.Add("Accept", "application/json");
client.DefaultRequestHeaders.Add("ContentType", "application/json");
现在,如下所示:
client.DefaultRequestHeaders.Add("x-ms-date", utc_date);
client.DefaultRequestHeaders.Add("x-ms-version", "2017-07-29");
//LIST all databases
verb = "GET";
resourceType = "dbs";
resourceId = string.Empty;
resourceLink = string.Format("dbs");
authHeader = GenerateMasterKeyAuthorizationSignature(verb, resourceId, resourceType, masterKey, "master", "1.0");
client.DefaultRequestHeaders.Remove("authorization");
client.DefaultRequestHeaders.Add("authorization", authHeader);
client.DefaultRequestHeaders.Add("Accept", "application/json");
client.DefaultRequestHeaders.Add("ContentType", "application/json");
response = client.GetStringAsync(new Uri(baseUri, resourceLink)).Result;
在GetStringAsync 通话中,我收到了 401。
HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
-
我在 Azure Cosmos DB 帐户中具有贡献者角色。
-
Querying Azure Cosmos DB resources using the REST API 用于 SQL API 而不是 Table API。但我已经按照相关部分进行了操作。
未设置授权或 x-ms-date 标头。当 Authorization 标头设置为无效的授权令牌时也会返回 401。
- 阅读Diagnose and troubleshoot Azure Cosmos DB unauthorized exceptions后,我也尝试过使用重新生成的读写主键。
为什么授权失败?
【问题讨论】:
标签: c# azure rest azure-cosmosdb azure-table-storage