当前位置: 首页 > 知识库问答 >
问题:

401(未经授权)|Cosmos DB rest API|rest-from-. net

南宫阳焱
2023-03-14

我正在为Cosmos DB Table API尝试rest-from-. net。

设置endpointmaster Key数据库ID集合ID。我正在使用内部资源ID。设置x-ms-version为2017-07-29。

在第 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;

在<code>GetStringAsync<code>调用中,我得到401。

HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).

>

  • 我在Azure Cosmos DB帐户上具有参与者角色。

    我已经浏览了这篇文章 关于堆栈溢出.

    使用RESTAPI查询Azure Cosmos DB资源是为了SQL API,而不是表API。但我已经遵循了相关提到的部分。

    授权或x-ms-date标头未设置。当授权标头设置为无效授权令牌时,也会返回401。

    • 在阅读了Azure Cosmos DB未授权异常的诊断和故障排除之后,我还尝试使用重新生成的读写主键

    为什么授权失败?

  • 共有1个答案

    吴宏扬
    2023-03-14

    尽管使用REST API查询Azure Cosmos DB资源描述了对Cosmos DB使用REST,但只有SQLAPI才可能使用REST,而不是Gremlin、Cassandra或Table API。不幸的是,文档没有提到这一点。因此,授权失败。相反,请参阅表服务REST API。

     类似资料:
    • 我的代码:GoogleCredential凭据 credential.refreshToken() 错误日志: 创建服务号的步骤: 我在凭据中的oauth 2.0中创建了一个Web应用程序 然后我用客户端ID创建了一个服务号 现在我正在使用这个服务号和从它生成的p12证书来验证和创建Google凭据的对象 一旦刷新令牌,我就给了我401例外。 在这种情况下,任何帮助都会受到感激

    • 我想使用爪哇谷歌驱动器API。我尝试了这段代码: 但是我得到了这个错误: 我使用以下配置: 你能告诉我怎么解决这个问题吗?

    • null null 使用NodePort服务公开Keycloak。 应用程序使用istio入口网关公开。 Keycloak服务器版本:9.0.0。

    • 我正在尝试登录基于cloudflare服务器的网站。我使用cloudserver绕过了登录问题,但我的下一个停止点是当我试图发送get请求以访问一些登录后令牌时。 我的代码: 这返回401作为答案: 它的标题是 好的,我首先试着给一个auth。这样地 我再次得到相同的错误,401,但这次响应的头确实有一个www身份验证,我应该质询 根据我所读到的内容,它是基本的意味着我必须在我的头文件中添加一个像

    • 我正在使用Maven Jib插件将我的应用程序部署到Gitlab docker注册表。如果我使用并输入用户名和密码,我可以成功登录gitlab注册表。我可以看到