0

我正在运行 RavenDB server build 2174,并将以下行添加到 Raven.Server.exe.config 文件中:

<add key="Raven/Authorization/Windows/RequiredGroups" value="localhost\Administrators"/>
<add key="Raven/AnonymousAccess" value="None"/>

我还设置了一个 ApiKey,我的应用程序使用它来与 RavenDB 服务器和数据库进行交互。ApiKey 已被授予我正在使用的数据库的管理员权限(选中管理员复选框)。

使用上面给出的配置,我正在尝试使用 DatabaseCommands.GetAttachment() 方法从 RavenDB 数据库加载附件。每当我这样做时,我都会收到 401(未经授权)响应。我已经能够通过使用 DatabaseCommands 对象上的 With() 方法使用管理员组中的登录名和密码组合传递身份验证来使其工作。这是执行此操作的代码行

SiteDocumentStore.DatabaseCommands
                 .With(new NetworkCredential("login", "password", "domain"))
                 .GetAttachment(attachment_key);  

所以我的问题是,如何使用 GetAttachment() 方法而不必使用 With() 并传入登录凭据?DocumentStore 已经拥有 ApiKey,它可以将它用于所有其他命令,而无需执行任何特殊操作。事实上,PutAttachment() 方法无需使用 With() 方法就可以工作,那么为什么 GetAttachment() 不能呢?这是疏忽还是错误?还是有什么我没有得到的?

4

1 回答 1

0

当您使用登录/密码时,您没有使用 Api Key,它应该自动为您使用正确的 Api Key 进行身份验证。我们刚刚发现了在某些情况下使用 Api Keys 的错误,请等待下一个版本 (2176),它应该会解决它。

于 2012-12-20T04:51:32.837 回答