.net 使用RavenDB客户端API发送客户端证书

.net 使用RavenDB客户端API发送客户端证书,.net,httpclient,ravendb,client-certificates,ravendb-http,.net,Httpclient,Ravendb,Client Certificates,Ravendb Http,我的团队正在开发一个.NETWeb应用程序,它将运行在多个windows服务器上,我们希望使用RavenDB实现持久性。我们的客户要求用户访问RavenDB管理页面需要用户提供有效的客户证书以进行身份验证。我们计划运行托管在IIS上的RavenDB,它要求对RavenDB的所有请求都使用有效的客户端证书 通常在.NET中,将客户端证书附加到http请求,我可以看到Raven.client DocumentSession代码,但我没有看到使用Raven.client API在创建和使用Docume

我的团队正在开发一个.NETWeb应用程序,它将运行在多个windows服务器上,我们希望使用RavenDB实现持久性。我们的客户要求用户访问RavenDB管理页面需要用户提供有效的客户证书以进行身份验证。我们计划运行托管在IIS上的RavenDB,它要求对RavenDB的所有请求都使用有效的客户端证书

通常在.NET中,将客户端证书附加到http请求,我可以看到Raven.client DocumentSession代码,但我没有看到使用Raven.client API在创建和使用DocumentStore或DocumentSession将数据保存到RavenDB时将客户端证书附加到我的请求的任何方法


有没有什么好方法可以使用RavenDB客户端API代码发送客户端证书来验证我的请求?

是的,您可以使用ConfigureRequest事件进行验证,请参阅:


这可以从
docuemntStore.JsonRequestFactory.ConfigureRequest

访问,我被JsonRequesrFactory是get这一事实分散了注意力,只是我没有想到其中的对象可以修改。这似乎可以工作,我将尝试一下。DocumentStore的JsonRequestFactory似乎不是向服务器发出http请求的唯一地方。我收到一个“无法与主机签订新复制信息合同”DocumentConvention中的错误,因此我认为我需要找到一种方法,首先随该请求发送客户端证书。是否在对文档存储调用
Initialize
方法后执行此操作?我在Initialize方法之前和之后都尝试过此操作,并收到复制信息错误消息(以及一条显示403错误页面的异常消息)在这两种情况下。调用初始化函数后,我收到“无法联系主机获取新的复制信息”错误。我可以从DocumentStore的代码中看出,jsonRequestFactory的值是在初始化函数中设置的(意味着我在调用Initialize之前对jsonRequestFactory所做的任何更改都将被覆盖)。如果Initialize中的某些内容正在使用jsonRequestFactory,那么jsonRequestFactory将被设置并在同一例程中使用,这意味着在不编写新的IDocumentStore实现的情况下,没有正确的步骤可以添加到ConfigureRequest