Мне нужно воспользоваться службой для получения билета приложения для проверки подлинности другой службы. Решение размещено на конечной точке.Практическое руководство. Веб-клиент C# для доступа к конечной точке службы (протокол Oauth 2.0, аналогичный протоколу) с Mutual TLS
Я попытался использовать приложение POSTMAN в Google Chrome, и он успешно завершен и возвращает мне AppID. Когда я отправляю запрос (POST) в приложение POSTMAN, он запрашивает сертификат. Когда я выбираю правильный сертификат, вызов выполняется успешно.
Мне нужно реализовать то же самое в C# (в веб-приложении)
Я попытался с помощью библиотеки RestSharp.RestClient и я постоянно получаю следующее сообщение об ошибке: «Сертификат клиента не найден в сертификатах сайта».
Ссылка на код для справки.
var client = new RestSharp.RestClient("MyUrl");
var request = new RestSharp.RestRequest("pksecure/oauth20_clientcredentials.srf", RestSharp.Method.POST);
request.AddParameter("grant_type", "client_credentials");
request.AddParameter("param2", "value2");
request.AddParameter("scope", "machinename");
client.ClientCertificates = new System.Security.Cryptography.X509Certificates.X509CertificateCollection();
client.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate(
@"E:\MyCertificate.pfx"
, "MyPassword"
));
System.Net.ServicePointManager.ServerCertificateValidationCallback +=
delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslError)
{
bool validationResult = true;
return validationResult;
};
var response = client.Execute(request);
var content = response.Content; // raw content as string
Pls. помогите сделать этот вызов, используя взаимный TLS.
TIA, Sam.