Мне нужно использовать взаимную аутентификацию Https в клиенте API отдыха, так как мы получаем только URI, мы не можем добавить сертификат клиента, как и для WCF. Так что я добавил ключи в моем веб .config, как показано ниже:Конфигурация клиента клиента клиента в web.config C#
<appSettings>
<add key="URI" value="https://localhost:8080/RestfulAPI/RestfulService.svc/restfulData" />
<add key="CertificateValue" value="certficatename"/>
<add key="CertificateLocation" value="LocalMachine"/>
<add key="CertificateStoreName" value="My"/>
<add key="CertificateFindType" value="FindBySubjectName"/>
</appSettings>
и я использую его в мой код клиента, как показано ниже:
X509Store store = new X509Store(ConfigurationManager.AppSettings["CertificateStoreName"], ConfigurationManager.AppSettings["CertificateLocation"]);
store.Open(OpenFlags.ReadOnly);
X509CertificateCollection certificates = store.Certificates.Find(ConfigurationManager.AppSettings["CertificateFindType"], ConfigurationManager.AppSettings["CertificateValue"], true);
X509Certificate certificate = certificates[0];
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
request.ClientCertificates.Add(certificate);
HttpWebResponse response = request.GetResponse() as HttpWebResponse
Это правильный способ осуществить взаимную аутентификацию Клиент REST API?
Или если кто-то может помочь мне с правильным подходом?
Привет, @AlinG. Мне также нужно настроить параметры сертификата, есть ли другой способ сделать это, кроме тех, которые я упомянул в вышеупомянутом сообщении? – Techie
app.config и запрос к хранилищу сертификатов - это один из способов, поскольку это клиентское приложение, которое также может добавить поддержку для загрузки сертификата из файла; для этого вы можете использовать [X509Certificate2 Ctor] (https://msdn.microsoft.com/en-us/library/ms148420 (v = vs.110) .aspx) и дополнительно разрешить им предоставлять пароль для доступа к сертификату (таким образом, пользователю не нужно устанавливать сертификат). – AlinG