Отправка сертификата клиента с помощью RavenDB Client API
Моя команда разрабатывает веб-приложение.NET, которое будет работать на нескольких серверах Windows, и мы хотели бы использовать RavenDB для постоянного хранения. У нас есть требование от нашего клиента, чтобы пользовательский доступ к странице администратора RavenDB потребовал от пользователя предоставить действительный сертификат клиента для аутентификации. Мы планируем запустить RavenDB, размещенный на IIS, и настроить IIS так, чтобы требовался сертификат клиента для доступа к веб-сайту, который требует, чтобы все запросы к RavenDB использовали действительный сертификат клиента.
Обычно в.NET присоединение сертификата клиента к запросу http можно выполнить с помощью HttpClient, просто добавив X509Certificate в WebRequestHandler и передав его в конструктор HTTPClient, и я вижу, что код DocumentSession Raven.Client использует HttpClient в своем коде, но Я не видел способа использовать API Raven.Client для присоединения сертификата клиента к моему запросу при создании и использовании DocumentStore или DocumentSession для сохранения данных в RavenDB.
Есть ли хорошие способы использовать код API клиента RavenDB для отправки сертификата клиента для проверки подлинности моего запроса?
1 ответ
Да, вы можете сделать это с помощью события ConfigureRequest, см.: https://github.com/ayende/ravendb/blob/v3.5/Raven.Client.WinRT/Connection/HttpJsonRequestFactory.cs#L28
Это доступно из docuemntStore.JsonRequestFactory.ConfigureRequest